问题描述
我想在我的 wordpress 主题中做相关的帖子,我想按标签和类别显示帖子 - 即使有不同的标签。我发现了这个并且它有效,但仅按标签或类别显示相关帖子
/**
* Related posts
*
* @global object $post
* @param array $args
* @return
*/
function wcr_related_posts($args = array()) {
global $post;
// default args
$args = wp_parse_args($args,array(
'post_id' => !empty($post) ? $post->ID : '','taxonomy' => 'category','limit' => 3,'post_type' => !empty($post) ? $post->post_type : 'post','orderby' => 'date','order' => 'DESC'
));
// check taxonomy
if (!taxonomy_exists($args['taxonomy'])) {
return;
}
// post taxonomies
$taxonomies = wp_get_post_terms($args['post_id'],$args['taxonomy'],array('fields' => 'ids'));
if (empty($taxonomies)) {
return;
}
// query
$related_posts = get_posts(array(
'post__not_in' => (array) $args['post_id'],'post_type' => $args['post_type'],'tax_query' => array(
array(
'taxonomy' => $args['taxonomy'],'field' => 'term_id','terms' => $taxonomies
),),'posts_per_page' => $args['limit'],'orderby' => $args['orderby'],'order' => $args['order']
));
include( locate_template('related-posts-template.PHP',false,false) );
wp_reset_postdata();
}
这是模板文件
<?PHP if (!empty($related_posts)) { ?>
<div class="related-posts">
<h3 class="widget-title"><?PHP _e('Related articles','wpcrumbs'); ?></h3>
<ul class="related-posts-list">
<?PHP
foreach ($related_posts as $post) {
setup_postdata($post);
?>
<li>
<a class="title" href="<?PHP the_permalink(); ?>" title="<?PHP the_title_attribute(); ?>">
<?PHP if (has_post_thumbnail()) { ?>
<div class="thumb">
<?PHP echo get_the_post_thumbnail(null,'medium',array('alt' => the_title_attribute(array('echo' => false)))); ?>
</div>
<?PHP } ?>
<h4><?PHP the_title(); ?></h4>
</a>
</li>
<?PHP } ?>
</ul>
<div class="clearfix"></div>
</div>
<?PHP
}
<?PHP
wcr_related_posts(array(
'limit' => 6,'taxonomy' => 'post_tag','category',));
?>
必须扩展 tax_query(也要添加类别)。
但我不知道如何扩展
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)