特定のカテゴリから作成されたタグリスト-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();
?>
所属していません StackOverflow