I have this function in my child theme\'s functions.php, 其简单目的是列出一些帖子,仅从当前帖子的类别中列出,而不是当前帖子本身。
它一直工作得很好,直到今晚it started listing posts from all categories, 不仅仅是当前帖子的类别。
我对网站所做的唯一更改是将其更新到WordPress版本3.8。我不确定这是否与此有关,但我认为可能与此有关,因为我有一个“克隆”网站,它仍在运行WordPress 3.7.1,并且该网站上的相同功能正常工作,完全按照我的要求执行,即它列出了许多帖子,只列出当前帖子类别中的帖子,而不是当前帖子本身。
功能如下:
<?php
function list_posts_from_current_category() {
if(is_single()){
$cat_ID = get_the_category($post->ID);
$cat_ID = $cat_ID[0]->cat_ID;
$this_post = get_the_ID();
$PostsPerPage = 5;
query_posts(array(\'cat\' => $cat_ID, \'post__not_in\' => array($this_post), \'posts_per_page\' => $PostsPerPage, \'orderby\' => \'rand\'));
while ( have_posts() ) : the_post();
$ThisPermalink = get_permalink();
$ThisTitle = get_the_title();
echo \'<a href="\'.$ThisPermalink.\'">\'.$ThisTitle.\'</a><br />\';
endwhile;
wp_reset_query();
}
}
add_action(\'do_my_list\', \'list_posts_from_current_category\');
?>
它被添加到子主题的内容中。php通常的方式:
<?php do_action(\'do_my_list\'); ?>
就像我所说的,这一切都按照WP 3.7.1中的预期工作,但在WP 3.8版中却出现了一些问题,列出了所有类别的帖子。
有人知道它有什么问题吗?