WordPressのプラグインSEO Friendly Imagesは、画像のaltタグやtitleタグに自動的にページタイトルやタグなどの文字列をセットし、画像SEO効果をあげてくれるものです。
しかしSEO Friendly Imagesにはaltやtitleにカテゴリースラッグを入れる、という設定はできても、カテゴリー名そのものを入れる、という設定がありません。
SEO Friendly Imagesでカテゴリー名を入れたい時は、seo-friendly-images.phpの210行目辺りで
//$titletext_rep=str_replace(“%category”, $cats[0]->slug, $titletext_rep);
$titletext_rep=str_replace(“%category”, $cats[0]->cat_name, $titletext_rep);
その下の240行目辺りで
//$alttext_rep=str_replace(“%category”, $cats[0]->slug, $alttext_rep);
$alttext_rep=str_replace(“%category”, $cats[0]->cat_name, $alttext_rep);
としてやれば良いでしょう。
ちなみにこれを設定してみて、%nameで指定するファイル名(拡張子なし)がうまく入っていないことに気づきました。バージョン問題か他のプラグインとの相性かもしれませんが(Faster Image Insertという、画像をまとめて挿入するプラグインを併用しているため、それが原因の可能性もある)、とりあえず、180行目辺りの
### Swap with file’s base name.
preg_match(‘%[^/]+(?=\.[a-z]{3}\z)%’, $source[2], $source);
で正規表現が失敗しています。
ファイル名を取り出すだけなら、この行の前で、
### Get source.
preg_match(‘/src\s*=\s*([\'”])?((?(1).+?|[^\s>]+))(?(1)\1)/’, $matches[0], $source);
$saved=$source[2];
$imageFileName=basename($source[2]); //追加したコード
$imageName = substr($imageFileName, 0, strrpos($imageFileName, ‘.’)); //追加したコード
とでもしてやり、先ほど書き換えた箇所でそれぞれ
//$titletext_rep=str_replace(“%name”, $source[0], $titletext_rep);
$titletext_rep=str_replace(“%name”, $imageName, $titletext_rep);
//$alttext_rep=str_replace(“%name”, $source[0], $alttext_rep);
$alttext_rep=str_replace(“%name”, $imageName, $alttext_rep);
とすれば、とりあえずファイル名はセットされます。