次のコードを使用して、ランダムなタグのリストを表示しようとしました:
<?php wp_tag_cloud('smallest=10&largest=10&number=5&format=list&order=rand&orderby=count'); ?>
これは 5 つのタグのリストを表示しますが、順序はランダムではなく、ページをリロードしても変わりません。
これを達成する方法の助けはありますか?
どうもありがとう。
私は今夜、これに対する答えを自分で探していたので、解決策を投稿すると思いました。
私の要件は、ページが更新されるたびに表示されるランダムなタグと、特定のタグを除外する機能でした。テンプレートファイルが関数でごちゃごちゃになるのが嫌なので、関数を functions.php に入れました。
関数- これを functions.php ファイルに挿入します
function jr_get_tags_but_exclude() {
$args = array('exclude' => '36 17'); // see notes below
$alltags = get_tags( $args );
shuffle($alltags);
$count=0;
if ($alltags) {
foreach($alltags as $tag) {
$count++;
echo '<a href="'.get_tag_link($tag->term_id).'">'.$tag->name.'</a>';
if( $count >19 ) break;
}
}
}
The Call - これをテンプレート ページに挿入します
<?php jr_get_tags_but_exclude(); ?>
ノート
タグを除外するには、タグ ID が必要です。ID を取得する最も簡単な方法は、[投稿] -> [タグ] に移動し、除外するタグにカーソルを合わせることです。&tag_ID=9
ID # は、たとえばにカーソルを合わせると、ブラウザの下部にある URL バーに表示されます。
Wordpress codex forget_tags
では、各タグ ID を区切る空白スペースのみを配置するように指示されており、コンマは必要ありません。
結果のランダム化に関しては、 残念ながらrand
、 は利用可能なオプションではありません。$arg
get_tags
表示されるタグの数を変更するには、if ( $count >19 )
19 = 20 タグ、29 = 30 などに調整します。
shuffle($alltags);
ランダム化を行うものです
$count=0;
カウンターを開始し、$count++;
投稿された各タグをカウントif( $count >19 ) break;
し、ループを終了します。この場合、20 個のタグが投稿された後です。
クレジットと参照
主にこれらの紳士のソリューションに基づいています
get_tags の wordpress コーデックス
http://codex.wordpress.org/Function_Reference/get_tags
テンプレート ファイル内- 関数は必要ありません
<?php
$args = array('exclude' => '36 17'); // see notes below
$alltags = get_tags( $args );
shuffle($alltags);
$count=0;
if ($alltags) {
foreach($alltags as $tag) {
$count++;
echo '<a href="'.get_tag_link($tag->term_id).'">'.$tag->name.'</a>';
if( $count >19 ) break;
}
}
?>
編集できるように、間違いに気付いた場合は返信してください。