サポート » 使い方全般 » ウィジェットの<h>タグにtitle属性をつけるには?

  • お知恵を拝借したいと思います。
    表題の件ですが、
    現在defaultテーマを使用してサイドバーに各種ウイジェットを適用しております。
    このそれぞれのウィジェットの「タイトル」に
    個別にtitle属性(title=”要素の補足的な情報”)をつける方法は可能でしょうか?

    ウイジェットを使用せずサイドバー部分を手書きすれば事足りるのですが、
    ブログの実際の使用者の利便を考えてできればウィジェットを使用したいと思っております。

    widgets.phpの547行目

    'before_widget' => '<li id="%1$s" class="widget %2$s">',
    		'after_widget' => "</li>\n",
    		'before_title' => '<h2 class="widgettitle">',
    		'after_title' => "</h2>\n",

    のh2部分に「title=”要素の補足的な情報”」を追加し、
    この「要素の補足的な情報」の部分をウィジェット管理画面から変更できればベストです。

    default-widgets.phpの各classに追加コードを書くことで可能だと思いますが、
    私はphpのプログラムについて詳しくはありません。

    アイディアをお持ちの方がいらっしゃいましたら、よろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • アイディアをお持ちの方がいらっしゃいましたら、よろしくお願いします。

    これはコアを修正しない方法を考えていますか?
    コアの修正が前提であれば記述されている内容でほぼ解決されているのでは?

    私はphpのプログラムについて詳しくはありません。

    修正しようとされているものはhtmlのコードですよね。全体はphpで記述されていますが、修正する場所はhtmlのコードにclassを追加するだけですので詳しくなくてもできそうですよ;)

    トピック投稿者 rockhopper2000

    (@rockhopper2000)

    shokun0803さん こんにちは

    よくよく考えてみましたら(&ググってみました)defaultテーマはウィジェットを使用してるのでコアを修正しなくてもfunction.phpの下記部分を修正で対応できるようです。難しく考えない方がいいですね。

    if ( function_exists('register_sidebar') ) {
    	register_sidebar(array(
    		'before_widget' => '<li id="%1$s" class="widget %2$s">',
    		'after_widget' => '</li>',
    		'before_title' => '<h2 class="widgettitle">',
    		'after_title' => '</h2>',
    	));
    }

    ただし、複数のウイジェットタイトルにそれぞれ個別にtitle=””要素を設定するのはどうしたらいいかです。
    'before_title' => '<h2 class="widgettitle">',
    部分に条件分岐を設定すればいいとは思いますが、可能でしょうか?
    現在サイドバーには9つのウィジェットが適用されていて、
    最初と最後にテキストウイジェットです。
    現状でtitle=””要素が必要なのは最初の5つです。
    実際のサイトはこちらになります。

    ところで、ググる前に質問もなんですが、、、。
    「Get Custom Field Values」プラグインでカスタムフィールドにtitle=””要素を個別設定し、
    <?php echo c2c_get_custom(’カスタムフィールド名’); ?>をfunction.phpの中で呼び出すことは可能なのでしょうか?

    この方法をとりたい理由としては、
    私=カスタマイズ担当。
    実際の管理者=PC、WEB初心者。
    なので、すべての更新作業を管理画面上で行いたいのです。

    私はphpのプログラムについて詳しくはありません。

    WEBデザインはインパクの前頃からですから多少は理解しているつもりですが、なにぶんにも普段の仕事でphpスクリプトはエキスパートに任せております;)

    カスタムフィールド名をfunctions.php(function.phpではありませんよ、sが必用です)で呼び出すことは可能だと思いますが、呼び出すページや投稿のIDが指定できないと無理かと思います。通常はループの中で使用しますので。
    ちょっと試してはいないので、時間があれば試して見ます。(すみません、最近時間に追われているもので・・・運がよければ他の識者の方が答えてくれるかもです!)

    ああ、追記ですが、ウィジェットごとに異なるtitleを表示しようと思っているのであれば、そう簡単ではないかもしれません・・・
    ウィジットの設定時に項目名を入れられると思うのですが、この項目名が利用できれば早いですよね?できるのかなぁ・・・

    トピック投稿者 rockhopper2000

    (@rockhopper2000)

    shokun0803さんこんにちは。ご回答ありがとうございます。

    functions.phpでしたね;) 失礼しました。

    呼び出すページや投稿のIDが指定できないと無理かと思います。通常はループの中で使用しますので。

    今回の案件は全ページで同じ設定でかまいませんので、sidebar.phpでもかまいません。

    要望を整理しますと、現在sidebarのタイトルに表示されているスタッフの顔部分にマウスを当てると、コメントを表示させたいということです。実際に閲覧者の何人かがそのような行動をとっていて、実現できたらなということでした。

    実現の要件は以下のようになると思います。
    1.カスタムフィールドで人数分(現状5名)の設定をする。
    2.functions.php内で’before_title’ => ‘<h2 class=”widgettitle”>’,部分に条件分岐を設定する。
    3.分岐にwidgetsの種類を特定。
    「テンプレートタグ/the widget」のウィジェットの PHP クラス名を取得
    WP_Widget_Text
    WP_Widget_Pages
    WP_Widget_Recent_Posts
    WP_Widget_Categories
    WP_Widget_Archives
    該当なしelse(5名以外)は初期値などでできませんでしょうか?
    もしくは、おっしゃられているように、ウィジェットの「タイトル」(日本語ですが)を条件とする。

    <?php if (the_widget('WP_Widget_Text')) {?>
    'before_title' => '<h2 class="widgettitle" title="field名">',
    <?php } else if

    なんて感じですが、、、。あってますかね?

    私も今月末まで本業に追われておりまして、早々に試してみたいのですが。また報告します。

    要望を整理しますと、現在sidebarのタイトルに表示されているスタッフの顔部分にマウスを当てると、コメントを表示させたいということです。実際に閲覧者の何人かがそのような行動をとっていて、実現できたらなということでした。

    スタッフがユーザー登録されているならカスタムフィールドよりもユーザープロフィールのプロフィール情報欄を使用したほうが良いのではないですか?それなら簡単に呼び出せますよ;)

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「ウィジェットの<h>タグにtitle属性をつけるには?」には新たに返信することはできません。