私はできればフックやフィルタを使って、画像から title 属性を削除する方法を探しています。
ほとんどのクライアントは、画像に適切なタイトルを付ける手間をかけません。そのため、この属性の目的は不要です。ランダムで説明的ではないツールチップよりもツールチップを好みません。
私は強くこれを思いとどまらせます。より良い、より持続可能な実践は、クライアントにtitle
属性の値を教育し、適切に使用する方法を教えることです。
単にそれを取り除くことは、症状に包帯を貼ることであり、病気と戦わない。
ただし、とにかく属性を削除する場合は、いくつかの方法があります。
投稿コンテンツは、画面に表示される前にフィルターを通過します。このフィルターはいくつかのことを行います:引用符を中括弧に変換する、WordPressでPを大文字にする、などです。また、コンテンツに存在するショートコードを処理します。
正規表現を使用して<img />
タグを見つけ、title
属性を削除するフィルターを介してコンテンツを渡すことができます。
プラグインリポジトリのクイック検索で Img Title Removal が返されました。このプラグインは、まさに必要なことを行うと主張しています。コードをざっと見てみると、オプション1が正確に実行されていることがわかります。
<?php
/*
Plugin Name: Img Title Removal
Plugin URI: http://www.glauserconsulting.com/2008/11/nu-agency/
Description: Filter plugin that removes all title tags from images in posts.
Author: Ivan Glauser
Version: 0.2.1
Author URI: http://www.glauserconsulting.com
*/
add_filter('the_content', 'remove_img_titles');
function remove_img_titles($text) {
// Get all title="..." tags from the html.
$result = array();
preg_match_all('|title="[^"]*"|U', $text, $result);
// Replace all occurances with an empty string.
foreach($result[0] as $img_tag) {
$text = str_replace($img_tag, '', $text);
}
return $text;
}
?>
3番目のオプションは、title
属性をページにレンダリングした後に動的に削除することです。絶対に削除する必要がある場合、これはtitle
がまだHTMLコードにあるため(画面用)推奨されるシステムです読者)が、ドキュメントが読み込まれると削除されるため、「ランダムな、説明的でない」ツールチップを避けることができます。
JQueryを使用すると、title
属性を持つページ上のすべての<img />
要素を選択して削除できます。例:
jQuery(document).ready(function($) {
$('img[title]').each(function() { $(this).removeAttr('title'); });
});
これはコアをハックすることなくnon-jsの解決策です、あなたのテーマのfunction.php
ファイルでこれを試してください。
add_filter( 'wp_get_attachment_image_attributes', 'remove_image_text' );
function remove_image_text( $attr ) {
unset( $attr['alt'] );
unset( $attr['title']) ;
return $attr;
}