如何在一个页面中向不同区域添加多个(但具体的)帖子?

时间:2016-10-22 作者:makovar

我在构建自己的主题,但我不明白什么。如果我想在索引中有这样的内容。php文件:

//getting header with get_header() - not important
...some code...
//and here I want to add some specific post from specific category(ONLY this specific post)
...some other code...
//another specific post from specific category(only this specific post again).
...some another code...
//and so on
//getting footer with get_footer() - not important
我该如何以最正确的方式来做,这样就不会与每个帖子发生冲突(因为它在同一页上),我该如何只请求一次而不是多次(也许我把这与其他东西混淆了,我是新手),这样对数据库的请求就会尽可能少?

谢谢

1 个回复
最合适的回答,由SO网友:CodeMascot 整理而成

您可以使用不同的技术来实现这一点-

其中一个是get_posts() 作用您可以在其中传递参数,并获得特定帖子的数组。那么你必须运行foreach 循环以根据需要显示这些帖子。

您还可以使用WP_Query(). 它还需要如下参数get_posts() 但是在每次查询之后,您需要使用wp_reset_query().

第一种情况下-

//getting header with get_header() - not important
...some code...
//and here I want to add some specific post from specific category(ONLY this specific post)
$args_1 = [
    \'category__in\' => 1 // category id
];
$posts_1 = get_posts( $args_1 );

foreach ($posts_1 as $post_1){
    // show posts as you want
}
//another specific post from specific category(only this specific post again).
$args_2 = [
    \'category__in\' => 2 // category id
];
$posts_2 = get_posts( $args_2 );
foreach ($posts_2 as $post_2){
    // show posts as you want
}
//and so on
//getting footer with get_footer() - not important
第二种情况-

//getting header with get_header() - not important
...some code...
//and here I want to add some specific post from specific category(ONLY this specific post)
$args_1 = [
    \'category__in\' => 1 // category id
];
$posts_1 = new WP_Query( $args_1 );
while ( $posts_1->have_posts() ) : $posts_1->the_post();

    get_template_part( \'template-parts/content\', \'page\' );

    // If comments are open or we have at least one comment, load up the comment template.


endwhile; // End of the loop.
wp_reset_query();
//another specific post from specific category(only this specific post again).
$args_2 = [
    \'category__in\' => 2 // category id
];
$posts_2 = new WP_Query( $args_2 );
while ( $posts_2->have_posts() ) : $posts_2->the_post();

    get_template_part( \'template-parts/content\', \'page\' );

    // If comments are open or we have at least one comment, load up the comment template.


endwhile; // End of the loop.
wp_reset_query();
//and so on
//getting footer with get_footer() - not important

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果