Список тегов, сделанный из конкретной категории - WordPress
-
24-10-2019 - |
Вопрос
Эта функция встроена в WordPress? Я ничего не видел в кодексе.
codex.wordpress.org/function_reference/wp_tag_cloud
У меня есть несколько страниц, специфичных для категории, и я хотел бы показать все теги, связанные с этими сообщениями.
Я нашел это, но я не уверен, правильно ли это или лучший способ (источник)(Старый метод !!!!):
<?php
query_posts('category_name=html');
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags_arr[] = $tag -> name;
}
}
endwhile; endif;
$tags_arr = array_unique($all_tags_arr);
?>
<ul>
<?php
foreach($tags_arr as $tag){
echo '<li>'.$tag.'</li>';
}
?>
</ul>
<?php wp_reset_query(); ?>
Обновление (упрощено) :::
Чтобы составить список тегов из конкретной категории, этот код намного лучше (просто измените имя категории):
:: недавно снова обновляется из -за ошибки цикла ::
<ul>
<?php
query_posts('category_name=html');
if (have_posts()) : while (have_posts()) : the_post();
if( get_the_tag_list() ){
echo $posttags = get_the_tag_list('<li>','</li><li>','</li>');
}
endwhile; endif;
wp_reset_query();
?>
</ul>
Даже тяжело, что у меня может быть решение, пожалуйста, обновите это, если появится новое.
Решение
Я думаю, что метод, который вы нашли, это единственный способ достичь того, что ищете. Может быть, вы можете изменить некоторые строки, но концепция правильная.
На данный момент я не думаю, что есть способ отфильтровать теги, как вы использовали бы основную функцию WordPress.
Другие советы
Я не получил код выше для работы с установкой WordPress. Однако мне удалось настроить его, пока это не сработало. Вот моя настройка:
$catid = get_cat_ID(single_cat_title("",false));
$catobj = get_category($catid);
$catslug = $catobj->slug;
$all_tags_arr = array();
query_posts('category_name='.$catslug);
if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags_arr[] = $tag -> term_id;
}
}
endwhile; endif;
$tags_arr = array_unique($all_tags_arr);
$tagcloud_args = array(
'include' => implode(',',$tags_arr),
);
wp_tag_cloud( $tagcloud_args );
wp_reset_query();
Вот гораздо более простой пример .... просто измените название категории и, эй, вы готовы. Связанные теги будут распечатываться в формате списка.
<?php query_posts('category_name=html'); if (have_posts()) : while (have_posts()) : the_post();
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
$all_tags[] = $tag -> name;
}
}
endwhile; endif;
//This snippet removes any duplicates.
$tags_unique = array_unique($all_tags);
echo '<ul>';
foreach($tags_unique as $unique) {
echo '<li>'.$unique.'</li>';
}
echo '</ul>';
wp_reset_query();
?>