假設你在$country_tag
得到了正確的值,假設(根據您的問題)$country_tag
是標籤名稱(而不是標籤嵌塊或ID),那麼您必須在您的get_posts中使用Taxonomy Parameters,或者首先獲取標籤的ID或塊。您可以使用get_term_by
此外,在您可以對帖子進行操作之前,您需要致電setup_postdata。
我建議首先使用get_term_by
,這樣您可以首先檢查標記是否存在,如果不存在則輸出消息。
$country_tag = get_the_title();
$tag = get_term_by('name', $country_tag, 'post_tag');
if (! $country_tag || ! $tag) {
echo '<div class="error">Tag ' . $country_tag . ' could not be found!</div>';
} else {
// This is not necessary. Remove it...
// global $wp_query;
$args = array(
'tag__in' => (int)$tag->term_id,
'posts_per_page' => -1
);
$posts = get_posts($args);
// be consistent - either use curly braces OR : and endif
foreach($posts as $post) {
// You can't use `the_title`, etc. until you do this...
setup_postdata($post);
// This if statement is completely unnecessary, and is incorrect - it's an assignment, not a conditional check
// if ($posts = $country_tag) {
the_title();
// }
}
}
上面,我是推薦的get_term_by
方法,因爲它允許您首先確認有是一個標記使用該名稱。如果你是100%的信心,總有對應於頁面標題標籤,你可以使用分類參數(如下所示):
$country_tag = get_the_title();
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'name',
'terms' => $country_tag
)
),
'posts_per_page' => -1
);
$posts = get_posts($args);
foreach($posts as $post) {
setup_postdata($post);
the_title();
}
我說「英國」的帖子和頁面標籤我正在將其視爲「聯合王國」的頭銜。然而,使用循環,你很好地放在一起,不幸的是沒有返回。 – Amesey
等待忽略......你提供的第一個循環工作。第二個循環沒有任何回報......我認爲你做到了:) – Amesey