WordPress

メディアライブラリのalt情報が取得できない時の対処法-複製の場合

この記事は2019年以前他サイトに執筆したものを引越し掲載しています。

先日Wordpressオリジナルテーマ化をしていたときのこと。

トップページのテンプレートでスライダーを設置していたので、管理画面の外観からスライダー画像を切り替えられる設定にしました。

ところがalt属性が取得・反映できなくてしばらく苦戦しました。

この記事ではwordpressテンプレート化の際に、メディアライブラリのデータを取得できなかった原因と対処の参考情報をのせます。

メディアライブラリの複製は元データと紐づける

alt属性に該当するのはメディアライブラリの「代替テキスト」。

でも代替テキストに入力した文字列をaltに反映できない…

理由は画像の元データ(親)と複製データ(子)を紐付けてなかったから。

どういうことかというと、

まず「メディアライブラリ」にアップロードしたのが元画像Aだとする。

それを管理画面「外観」からスライダーに設置する過程で「範囲の切り取り」とか編集操作が挟まり、その時に画像の複製データA’が作られていた。

スライダーに表示されるのはA’。「代替テキスト」を入力しても、元データAのIDと紐づける命令を書いてないとダメと。

 

ちなみに上記の理解はこちらの記事からでした。

wordpressで画像はどのようにデータベースに記録されているか

もしwodpress内のツールを使って画像を編集した場合、デフォルトでは内部処理として画像は複製され、複製された方に編集が施されることになります。この処置によって未編集元画像が失われずいつでも復帰させることが可能となっています。

https://unskilled.site/wordpress%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E8%A8%98%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%A6/

というわけで対応としては、alt取得うんぬんの命令前に、画像のURL(子)からID(親)を取得して紐づける。

紐づけの方法

紐づけの方法として参考にさせていただいたのはこちらのサイトさん。

スライドするカスタムヘッダーに、リンクとキャプションを入れる方法