如评论中所述get_posts 参数是错误的。不存在以下参数term_id. 你应该利用tag 将标记段塞用作字符串或tag__in 它使用数组中的标记ID
这会有用的
$posts = get_posts(\'numberposts=6&tag=\'. $tags->slug);
否则这就行了
$posts = get_posts(\'numberposts=6&tag__in=\' . array( $tags->term_id ));
我还想在这里强调一些其他问题
您应该在get_the_tags(). 像这样做get_the_tags( $post->ID );
将复数名称设置为变量名称,该变量名称将保留函数中的数组,并将单个名称用作value 在您的foreach 环这消除了混淆,并且更容易调试。如果你读到这个,$tags->name, 您会立即想到多个标记,但这用于检索特定标记的名称$tags 实际上是你的价值。你应该做这样的事情,我更容易理解,也不太容易混淆
$tags = get_the_tags();
foreach ( $tags as $tag ){
echo $tag->name;
}
EDIT
要排除当前帖子,可以执行以下操作
$posts = get_posts(\'numberposts=6&tag__in=\' . array( $tags->term_id ) . \'&post__not_in=\' . array( $post->ID) );