私は私がブログを持っているウェブサイトに取り組んでいますが、私は私がいくつかのビデオをドロップすることを可能にするためにカスタム投稿タイプも持っています。
表示されているビデオが9つ以上ある場合にページ付けが行われるように、ページ付けを使用したいと思います。
この最初の部分は動作します。ビデオは確かにページあたり9に制限されており、ページ付けは正しく下部に表示されます。
ただし、2ページ目のリンクをクリックすると、URLが変更されても、1ページ目の動画が表示されます。
私の「通常の」ブログ投稿では、ページ付けは意図したとおりに機能しています。
これは私が私のカスタム投稿タイプに使用している現在のコードです:
<?php if ( have_posts() ) : ?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts('post_type=videos&posts_per_page=9&paged=$paged'); ?>
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
任意の助けは大歓迎です。
query_posts
に渡されたパラメータの string が 一重引用符 でカプセル化されているため、変数(および$
以外の特殊文字のエスケープシーケンス)が展開されるのを防ぐことができます。
query_posts("post_type=videos&posts_per_page=9&paged=$paged");
だろう その問題の世話をする。
query_posts('post_type=videos&posts_per_page=9&paged='.$paged);
だろう も。
そして最後に、URLクエリスタイルの文字列 の代わりに混合引数の配列を渡すと、 になります。
とはいえ、 query_postsをまったく使用しないでください :
あなたのコメント通り、あなたは get_posts
を使おうとしました。
これは実際には非常に便利な機能ですが、その後に WordPress-Loop を使用したい場合の正しい方法ではありません。 get_posts
は投稿オブジェクトの配列を返します - WP_Query
objectのposts
プロパティ。しかし、その1つのプロパティだけに、他のすべての利点やメソッドは含まれていません。 WP_Query
が提供します。
したがって、上記のコードスニペットを使うには、この行に沿って何かをしてください。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'videos',
'posts_per_page' => 9,
'paged' => $paged
);
$your_query = new WP_Query( $args );
if ( $your_query->have_posts() ) {
/* The Loop */
while ( $your_query->have_posts() ) {
$your_query->the_post();
// do something
}
} else {
echo 'Sorry, no posts found.';
}
?>