SEO Friendly Imagesでslugではなくカテゴリ名を入れたい、ファイル名が表示されない

 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);

 とすれば、とりあえずファイル名はセットされます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする