[WordPress] 記事内画像やアイキャッチのALTの内容を変更する

記事投稿時に変更するのか、記事表示時に変更するのかでコードが変わってきます。

記事表示時

/* 記事画像からaltを除く */
add_filter('the_content', 'my_img_filter');
function my_img_filter($html) {
  global $post;

  // altを削除
  $result = array();
  preg_match_all('|alt="[^"]*"|U', $html, $result);
  foreach($result[0] as $img_tag) {
    $html = str_replace($img_tag, '', $html);
  }
  $result = array();
  preg_match_all("|alt='[^']*'|U", $html, $result);
  foreach($result[0] as $img_tag) {
    $html = str_replace($img_tag, '', $html);
  }

  // altにタイトルを付加する
  $post_title = get_the_title();
  $html = preg_replace('/(<img.*?)\/>/', '$1 alt="'.esc_attr($post_title).'" />', $html);

  return $html;
}

/* アイキャッチからaltを除く */
add_filter('post_thumbnail_html', 'my_thumbnail_filter', 99, 5);
function my_thumbnail_filter($html, $post_id, $post_thumbnail_id, $size, $attr) {
  // altを削除
  $result = array();
  preg_match_all('|alt="[^"]*"|U', $html, $result);
  foreach($result[0] as $img_tag) {
    $html = str_replace($img_tag, '', $html);
  }
  $result = array();
  preg_match_all("|alt='[^']*'|U", $html, $result);
  foreach($result[0] as $img_tag) {
    $html = str_replace($img_tag, '', $html);
  }

  // altにタイトルを付加する
  $post_title = get_the_title();
  $html = preg_replace('/(<img.*?)\/>/', '$1 alt="'.esc_attr($post_title).'" />', $html);

  return $html;
}

参考:php – How do I change/modify the_post_thumbnail(); html output? – WordPress Development Stack Exchange
参考:WordPress › Support » Remove title= attribute from the_post_thumbnail


記事投稿時

function img_norightclick($html, $id, $alt, $title, $align, $size) {
  return str_replace('/>','oncontextmenu="alert(\'保存できません\');return false; />',$html);
}
add_filter('get_image_tag','img_norightclick', 10, 6);

参考:[WordPress]記事内に画像を挿入するときのHTMLをカスタマイズする | Wood-Roots.blog

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)