2017-12-29 30 views
1

1つの特定のページにすべての投稿を表示しようとしました。カテゴリは最新の投稿のみを表示します。私のページとカテゴリはメインメニューの一部として表示されます。Wordpress:Blogのページの下に表示するすべてのブログ投稿と、カテゴリに表示する最新の投稿が必要(

functions.phpのこのコードは、マイページとマイカテゴリの両方に1つの投稿を表示します。しかし、私はすべてを表示するにはブログページが必要です。カテゴリーには1つの投稿しかありません。 (私はプラグインを使用することはできません。これは、これを手作業で行うためです)。

if(is_page_template('article-vedette-solo.php')){ 

    function my_main_query($query){ 
    if(!is_admin() && $query->is_main_query()){ 
     $query->set('posts_per_page', 1); 
    } 
} 
add_action('pre_get_posts','my_main_query'); 
} 

答えて

0

pre_get_postsの優先度が異なる場合、別のif条件にそのアクションを追加することはできません。

pre_get_postsのアクションの中に最初の条件を入れてみてください。それはあなたを助けるかもしれません。以下のコード検索、

function my_main_query($query) { 

    if(!is_admin() && $query->is_main_query()) { 

     if(is_page_template('article-vedette-solo.php')) { 

      $query->set('posts_per_page', 1); 
     } 
    } 
} 
add_action('pre_get_posts','my_main_query'); 

はそれが役に立てば幸い:)

+0

私は(私より多くの意味があります)あなたのコードがどのように動作するかという点で違いを参照してください。しかし、私はそれを働かせることができませんでした。私はそれと一緒に遊んでいくつかのことを試しましたが、それでも働いていません。私は_templateも削除しました(誤解しない限り、is_pageを使うべきです)。 EDIT:article-vedette-solo.phpを正しく使用していない可能性がありますか? WPがその特定のページを作成すると誤って信じていますか? – user3298911

+0

bdw私は依然として要件と混同しています。私が理解しているように、あなたはすべてのブログページを持っているので、そのカテゴリーページが呼び出されたときにその特定のカテゴリーから最新の1つの投稿を表示する必要があります。私は正しい? –

+0

「カテゴリ」と「ページ」は、ユーザーが作成した「投稿」というセクションから書かれた投稿を呼び出します。これはダッシュボードの下のオプションです。 「カテゴリ」自体に最新の投稿(1つの投稿のみ)が表示され、「ページ」自体にすべての投稿が表示されます。 私はPHPページを作成したと思って間違っていたので、今私は自分の目標をどのように達成できるかについてさらに混乱しています。 – user3298911

関連する問題