我想在WordPress循环中的帖子(如“赞助商”)之间添加一篇帖子(来自特定类别)。示例:
P P S
P P S P
P S P P
我怎样才能做到这一点?我是一个编码初学者,所以我不知道如何修改循环。有没有循环编码忍者可以提供解决方案?
请注意,下面是我的当前循环。它用于按价格或随机顺序对帖子进行排序:
指数php
<?php while (have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); the_meta ();
endwhile;
previous_posts_link();
next_posts_link();
?>
功能。php
function my_custom_query($query){
if ( $query->is_home() && $query->is_main_query() ) {
$sort= $_GET[\'sort\'];
if($sort == "A"){
$query->set( \'orderby\', \'rand\' );
$query->set( \'posts_per_page\', \'2\' );
}
if($sort == "B"){
$query->set( \'meta_key\', \'price\' );
$query->set( \'orderby\', \'meta_value_num\' );
$query->set( \'order\', \'DESC\' );
$query->set( \'posts_per_page\', \'2\' );
}
}
}
add_action( \'pre_get_posts\', \'my_custom_query\' );
Edit: Update
Birgire的插件有效!起初,我很难让插件在我的主题上工作。问题是我在索引中的循环中使用的这段代码。php(我使用它来调用自定义字段)。
<?php
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, \'price\', true);
wp_reset_query();
?>
最合适的回答,由SO网友:birgire 整理而成
自动赞助商发布注入器:
以下是一个基于
my answer 对于问题:
How to show Y number of custom posts after every X normal posts?我希望它更有用一点here on Github, 但它可能会进一步完善(未来的工作)。
这个SponsorPostsInjector
类将帮助您使用过滤器将赞助商帖子自动注入主题the_post
, loop_start
和loop_end
.
激活插件并将以下示例添加到functions.php
开始注入的文件:
/**
* Inject a sponsor post after the first post on the home page,
* and then again for every third post within the main query.
*/
add_action( \'wp\', \'my_sponsor_injections\' );
function my_sponsor_injections()
{
if( ! class_exists( \'SponsorPostsInjector\' ) ) return;
// We want the sponsor posts injections only on the home page:
if( ! is_home() ) return;
// Setup the injection:
$injector = new SponsorPostsInjector(
array(
\'items_before_each_inject\' => 3,
\'items_per_inject\' => 1,
\'template_part\' => \'content-sponsor\',
)
);
// Setup the injection query:
$injector->query(
array(
\'post_type\' => \'sponsor\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'country\',
\'terms\' => \'sweden\',
\'field\' => \'slug\',
)
)
)
);
// Inject:
$injector->inject();
}
我们在那里创建了
content-sponsor.php
我们当前主题目录中的模板文件,用于控制注入赞助商帖子的布局。
其想法是,这也应该考虑分页。
希望您可以根据自己的需要进行调整。