web-dev-qa-db-ja.com

posts_nav_link()が何も表示しない

Posts_nav_link()で何かを表示させることができません。以下は私のindex.phpテンプレートファイルです。私はパーマリンク(index.php/2011/08/26/sample-post/フォーマット)を使っています、そして現在私はBlog pages show at most-1に設定しています。

リンクが機能していない理由を誰かが知っていますか?

index.php

<?php
    get_header();
    $args = array('posts_per_page' => 4,'paged' => get_query_var('page'));
    $myquery = new WP_Query( $args );
?>

    <?php while ( $myquery->have_posts() ) : $myquery->the_post(); ?>

        <h1><?php the_title(); ?></h1>

        <?php the_content()?>

    <?php endwhile ?>

    <?php posts_nav_link() ?>

    <?php wp_reset_postdata(); ?>

<?php get_footer(); ?>
1
dotty

カスタムループにページ付けを機能させるには、少し「ハック」する必要があります。

$myqueryを定義したら、次の操作を行います。

<?php
// globalize $wp_query
global $wp_query;
// copy $wp_query into a temporary variable
$temp_wp_query = $wp_query;
// nullify $wp_query
$wp_query = null;
// move $myquery into $wp_query
$wp_query = $myquery;
?>

この時点で、あなたのposts_nav_link()は期待通りに動くはずです。

さて、ループの後、元のオブジェクトを$wp_queryに戻して、クエリに依存するページ上の他のすべてのものが正しく機能するようにします。

<?php
// restore original $wp_query
$wp_query = $temp_wp_query;
?>
4
Chip Bennett