如评论中所述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) );