web-dev-qa-db-ja.com

カスタム投稿タイプのprevious_post_link()およびnext_post_link()

私はループ内でworkというカスタム投稿タイプのsingle-work.phpを使っています。

前の記事と次の記事へのリンクを2つ作成しようとしています。

このコードを使う:

<?php previous_post_link(); ?>

そして

<?php next_post_link(); ?>

しかし何も現れない。私は何かが足りない

これは私のコードです、とても簡単です。

<?php get_header(); ?>
<div class="full" >

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

    <?php next_post_link('%link', 'Next post »'); ?>
<?php next_post_link('%link', 'Next post »'); ?>

<?php endwhile; // end of the loop. ?>

</div><!--/full-->  
<?php get_footer(); ?>
3
wesbos

あなたのコードで私が見ているのは、あなたの次の投稿と前の投稿のコードがwhileループの中にあってはいけないということです。

<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php endwhile; // end of the loop. ?>
<?php next_post_link('%link', 'Next post »'); ?>
<?php next_post_link('%link', 'Next post »'); ?>
</div><!--/full-->  
<?php get_footer(); ?>

または、詳しく見ることができます ここ

上記の投稿で、私は数字によるページ付けを見つけましたが、それでも、ページ付けがどのように正確に機能するかを説明しました。

3
wpmemorize

機能は正しいです。パラメータを設定する

<?php next_post_link('%link', 'Next post »'); ?>

<?php next_post_link('%link', 'Next post »'); ?>

まあ、あなたのコードを見なくても、理由を言うのは難しいです。 PHPエラーや警告はありますか?

アップデート

小さな例

<?php query_posts( array( 'post_type' => 'page', 'post_status' => 'publish' ) ) ?>
<?php if ( have_posts() ) : ?>

    <?php while ( have_posts() ) : the_post() ?>
        <!-- do stuff -->

    <div id="nav-single">
        <div class="left"><?php previous_post_link(); ?></div>
        <div class="right"><?php next_post_link(); ?></div>
    </div>

    <?php endwhile; // end of the loop. ?>
    <?php wp_reset_query(); ?>

<?php else : ?>

    <!-- do other stuff here -->

<?php endif ?>
1
bueltge

ドキュメント を読んでください。

Php.iniでmysql.trace_modeが有効になっていると、この機能は動作しません(静かに失敗します)。そのファイルを編集できない場合は、追加してみてください

ini_set( 'mysql.trace_mode', 0 ); to your theme's functions.php.

それはあなたの問題を解決するかもしれません、それは私のためにしました。

1