web-dev-qa-db-ja.com

ショートコードでのページ付け。

ショートコードを使用してカスタム投稿タイプのアーカイブを出力しようとしています。 get_next_posts_link部分以外はすべてうまくいきます。奇妙な部分は、それが完璧に動作するget_previous_posts_linkのすぐ隣にあるということです。

これが関数です

function output_tips() {
global $paged;
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array( 'post_type' => 'ht_tips', 'posts_per_page' => 1, 'paged' => $paged, 'caller_get_posts' => 1, 'orderby' => 'date', 'order' => 'DESC' );
$loop = new WP_Query( $args );

$inner = '';

while ( $loop->have_posts() ): $loop->the_post(); global $post;

    $title = '<h3>'. get_the_title() .'</h3>';

    $content = get_the_content();

    $output = '<div class="testimonial">' . $title . $content . '</div>';

    $inner .= $output;

endwhile; 

$prev = '<div class="nav-previous">' . get_previous_posts_link( __( '<span class="meta-nav">&larr;</span> Previous' ) ) . '</div>';
$next = '<div class="nav-next">' . get_next_posts_link( __( 'Next <span class="meta-nav">&rarr;</span>' ) ) . '</div>';

wp_reset_postdata();

$open = '<div class="testimonials">';
$close = '</div>';
$return = $open . $inner . $prev . $next . $close;

return $return;
}

なぜこれがあるかもしれないの任意のアイデア?

2
GusRuss89

これは古い質問ですが、私もこれに対する答えが必要でした。これはWP codexから得られた 解決策です ...

$prev = '<div class="nav-previous">' . get_next_posts_link( __( '<span class="meta-nav">&larr;</span> Previous' ), $loop->max_num_pages );

あなたはあなたの出力にクエリからmax_num_pagesパラメータを追加する必要があります、そしてそれはショートコードの中から期待通りに働くべきです。

1
corradomatt