• 解決済 haruka

    (@harlequin_wp)


    TwentyElevenを使用しています。
    ウィジェットにてサイドバーに「最近のコメント」を表示させると、記事タイトルにHTMLタグが含まれていた場合に、タグが有効な状態で表示されてしまいます。
    これを、esc_attr()関数を適用して実態参照に変換したいのですが、どんな方法がありますか?

    記事のタイトルやコンテンツにはフィルターフックがあるので、それを使って同様のことができるのですが、ウィジェットに対してはどうしたらよいのかわからず、悩んでいます。

    「最近の投稿」については、カスタム投稿タイプの記事も含めたかったのでウィジェットは使わず、sidebar.phpに直接get_posts()を書いたので、その中でesc_attr()しました。
    しかし、「最近のコメント」に関してはカスタム投稿タイプもデフォルトで取得してくれるので内容もデザインも全く変更する必要が無く、記事タイトルのタグを実態参照にしたいというだけなので、そこだけちょこっとカスタマイズする方法があったらなぁと思いました。

    方法が無ければ、コメントもウィジェットを使わずに、sidebar.phpに直接get_comments()を書いて取得するしかないのかな、と思ってます。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • ウィジェットのタイトル用のフィルターフック:widget_title

    トピック投稿者 haruka

    (@harlequin_wp)

    kzさん、回答ありがとうございます。

    私の勘違いだったら申し訳ないのですが、widget_titleはウィジットそのもののタイトル、例えば「最近のコメント」や「最近の投稿」等の文字列にかかるフィルターではないでしょうか?

    もしそうであれば、私の質問文がわかりにくかったようです。すみません。
    例えばウィジット「最近のコメント」を表示させると、そこには最近コメントがあった投稿のタイトルが、設定した件数分、リスト表示されますよね。その「投稿のタイトル」にesc_attr()したいのです。

    おっと、ボケてました。

    コメントウィジェットで表示される投稿のタイトルは get_the_title() で取得してるので
    ‘the_title’ フィルターフックが使えます◎

    トピック投稿者 haruka

    (@harlequin_wp)

    kzさん、ありがとうございます!
    get_the_title()にthe_titleフィルターフックが使えたのですね〜。
    the_title()にしか使えないものと思い込んでおりました。

    //functions.phpに記述
    function esc_attr_the_title($title){
    	$title = esc_attr($title);
    	return $title;
    }
    add_filter('the_title', 'esc_attr_the_title');

    これで、希望通りに表示することが出来ました。
    やりたいことも解決し、間違った認識も正せて助かりました。
    ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「ウィジェットで表示される記事タイトルのタグを無効にしたい」には新たに返信することはできません。