サポート » 使い方全般 » アイキャッチについて

  • 解決済 fons_00

    (@fons_00)


    初めまして、お世話になります。アイキャッチについて質問させて頂きます。

    個別記事ページ(single.php)でのアイキャッチ画像表示+元画像へのリンク設置を参考にして設置はしたものの、タイトル属性は必要ないので除去をしたいのですがどうすればいいのでしょうか。

    自分で色々調べたりしたのですが、こちらのimgやa要素に付与されるtitle属性を除去するという記事を参考にfunctions.phpに以下のコードを追加しました。

    function post_thumbnail_remove_title($text) { return preg_replace('/ title=("[^"]*"|\'[^"]*\')/u', '', $text); }
    add_filter('post_thumbnail_html', 'post_thumbnail_remove_title');
    
    function custom_wp_list_categories($text) { return preg_replace('/(<a.+<\/a>)/u', '<span>$1</span>', $text); }
    add_filter('wp_list_categories', 'custom_wp_list_categories');

    しかしながら、コードを入れてもタイトル属性は消えませんでした。メディアからエディタに画像を貼り付ける時に付与されるtitle属性も除去してるようなのですが、こちらも反映していませんでした。何か他に方法はあるのでしょうか?どなたかご教授頂けたら幸いです。宜しくお願いします。

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

    (@jim912)

    fons_00さん、こんにちは。

    function post_thumbnail_remove_title($text) { return preg_replace('/ title=("[^"]*"|\'[^"]*\')/u', '', $text); }
    add_filter('post_thumbnail_html', 'post_thumbnail_remove_title');

    一応、上記のコードでアイキャッチ画像のtitle属性が削除されることを確認できました。
    fons_00さんの環境で削除されないとなると、コードの記述箇所かアイキャッチ画像の表示が異なるのかもしれません。

    メディアからエディタへ貼り付け時は、上記のコードでは削除はなされません。
    2つ目のコードが元記事の「wp_list_categories()で出力されるコードを修正する」そのままなので、記事の編集ミスかもしれません。

    エディタ貼り付け時のtitle属性の削除は、

    function remove_title_from_image_tag( $html, $id, $alt, $title ) {
    	$title = '" title="' . esc_attr($title).'"';
        $html = str_replace( $title, '', $html );
        return $html;
    }
    add_filter( 'get_image_tag', 'remove_title_from_image_tag', 10, 4 );

    のような感じになります。

    モデレーター jim912

    (@jim912)

    アイキャッチ画像以外にもtitle属性が消えることになりますが

    function remove_title_from_image_attributes( $attr ) {
    	if ( isset( $attr['title'] ) ) {
    		unset(  $attr['title'] );
    	}
    	return $attr;
    }
    add_filter( 'wp_get_attachment_image_attributes', 'remove_title_from_image_attributes' );

    でもtitle属性を消すことはできます。

    トピック投稿者 fons_00

    (@fons_00)

    >jim912様

    試しにコードをアイキャッチのみにしてみたら反映しました。エディタの方のコードが間違っていたから反映しなかったのでしょうか。一方のコードを消すということを思いつかずお手数をおかけしました。

    function remove_title_from_image_tag( $html, $id, $alt, $title ) {
    $title = ‘” title=”‘ . esc_attr($title).'”‘;
    $html = str_replace( $title, ”, $html );
    return $html;
    }
    add_filter( ‘get_image_tag’, ‘remove_title_from_image_tag’, 10, 4 );

    こちらのコードを追加したところ上手く反映しました。出来ればエディタ貼りつけ時に付与されるタイトル属性も消せたらいいなと思っていたので助かりました。本当にありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「アイキャッチについて」には新たに返信することはできません。