我想添加一个自定义函数,将相关帖子添加到我的wp主题中。
我已将此函数代码添加到我的主题函数中。php文件,但它无法工作:
function my_related_artickes()
{
$categories = wp_get_post_categories( $post->ID );
$ids = array();
foreach( $categories as $cat ){
$ids[] = $cat;
}
return $ids;
}
我这样调用函数:
<?php
$ids = my_related_articles();
var_dump($ids);
$related = new WP_Query( array(\'post_type\' => \'post\', \'category__in\' => $ids, \'posts_per_page\' => 4 ) );
if( $related->have_posts() ): while( $related->have_posts() ): $related->the_post();
?>
<div class="col-md-3 col-lg-3 mt-3 mb-3 d-none d-md-block">
<img class="img-fluid w-100 related-img mb-3" src="<?php echo the_post_thumbnail_url(); ?>">
<a class="h5 text-decoration-none" href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</div>
<?php endwhile; endif; wp_reset_postdata(); ?>
我怎样才能解决这个问题?
SO网友:mozboz
一个问题(可能还有更多;-)是$post->ID
从页面模板调用时,可能超出范围。
您可以更改函数的工作方式,将post ID作为参数,如下所示:
function my_related_artickes($postID)
{
$categories = wp_get_post_categories( $postID );
$ids = array();
foreach( $categories as $cat ){
$ids[] = $cat;
}
return $ids;
}
然后这样称呼它:
$ids = my_related_articles($post->ID);
显然,当你打电话给它时,一定要给它一个好的帖子ID。