サポート » 使い方全般 » タグクラウドのリンクのtitel属性をカスタマイズしたい

  • タグクラウド内ではタグ名でリンクが生成されますが、デフォルトではこのリンクをhoverすると 「3のトピック」のようにタグ付けされた記事件数を表示するようになっています。このtitle属性の記述を変更し、当該タグを登録したpost,page,できれば投稿タイプのタイトルを表示するようなカスタマイズはできないでしょうか?
    検索してみますと、
    http://bliss.dip.jp/programming/wordpress/tag-title/
    において、wp-includes/category-template.php を編集する方法があるようですが、WPのアップグレード時等に対応できるよう、できれば子テーマのfunctions.phpに関数を追加して、wp_tag_cloud();に反映されるのが望むものになります。

    wp_tag_cloud()を使わず、get_tags()を使う方法も試みましたが、なかなかうまく行きませんでした。お知恵を頂ければ幸いです。よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター jim912

    (@jim912)

    pyonkoさん、こんにちは。

    タグクラウドのtitle属性を変更することは、それほど難度は高くありませんが、「当該タグを登録したpost,page,できれば投稿タイプのタイトルを表示」という要望が曖昧です。

    タグに登録されている記事は複数あるはずですから、「タグを登録している記事の中で最新の記事のタイトル」などと厳密な条件が必要です。

    それから、記事のタイトルを取得するためには、タグごとにクエリーを発する必要があるので、タグの数によっては、少々重い処理になりかねません。

    トピック投稿者 pyonko

    (@pyonko)

    いつもお世話になりありがとうございます。
    各タグのa要素にtitleを入れておけば、ツールチップに投稿名・固定ページ名が表示されるようにしたかったのです。
    title=”4件のトピック”
    となっているところを、
    title=”投稿記事Aのタイトル,投稿記事Bのタイトル,固定ページaのタイトル,固定ページbのタイトル”
    としたいと思います。なお、投稿・ページ・投稿タイプを集合して公開日の新しい順にしたいのです。(カテゴリーは考慮しない)

    タグ数は現在35ですが、今後増えてもこの倍にはしないよう絞っていきます。
    タグごとにクエリーを発する工程が追加されると、wp_tag_cloud()の出力時間が大幅に増加するでしょうか?

    モデレーター jim912

    (@jim912)

    pyonkoさん

    やり方としては、

    1. wp_generate_tag_cloudにフック
    2. 正規表現でタグのidを取得
    3. get_postsでtag付けされている投稿を取得
    4. 記事のタイトルをカンマで繋いでtitleの文字列を生成
    5. 元のソースを生成した記事のタイトルで置換

    という手順になろうかと思います。

    タグクラウドではありませんが、下記はほぼ同様の手法によって wp_list_categories のソースを置換しているものなので、参考にしてみてください。

    wp_list_categoriesのclassにスラッグを含める方法

    それと、タグ付けされている全ての記事タイトルを表示するのは、単に見にくくなるだけですので、検討された方が良いかと思います。

    トピック投稿者 pyonko

    (@pyonko)

    jim912様

    丁寧な解説と、具体例をお示しくださって誠にありがとうございました。
    これからカスタマイズして実装を試みてみます。いろんな類似したケースを積み重ねていらっしゃるのですね!前々回ご指摘いただいている投稿等タイトルの選択基準をどうコーディングするかが当方にとって独自の課題になりそうです。正規表現などもちょっと敬遠していたムキもあり、これを機会にスキルアップ要素に加えていきたいと思います。うまくできたと報告できるようにトライしてみます。
    貴重なご指導、ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「タグクラウドのリンクのtitel属性をカスタマイズしたい」には新たに返信することはできません。