記事の一覧表示にてアイキャッチ画像を表示するには、新規投稿・編集時にメディアライブラリ経由でアイキャッチ画像を指定するのが一番手軽なんだけど・・・
ちょいとワケが有ってメディアライブラリ経由ではアレなので、面倒な方法で処理しようとしたのですが正攻法で処理出来なかったでござるの巻…(´Д` )
結局、いつものようにアチコチ弄ったのはいいけど、何処を弄ったのか絶対に忘れる自信があるのでメモ。
※個人的な備忘録なので正誤については無責任モードで…
■参考・・・記事内の一番最初の画像を取得してサムネイル画像表示
変数:$post 内に格納された記事本文を走査。
(DBの wp_posts テーブル内、post_content カラムに格納されたデータ)
画像のファイル名を preg_match_all() で抽出して最初の画像をアイキャッチ画像として表示。
このブログでは特殊な方法で記事内に画像を埋め込んでいるので、変数:$post 内から画像ファイルを抽出できない・・・(´・ω・`)
+++
仕方がないので wp_posts テーブルにアイキャッチ画像とする画像のディレクトリ名とファイル名のカラムを追加し、2つの情報が変数:$post 内に入るように変更。
wp-includes/query.php 2237行目あたり
$allowed_keys = array(
'post_name','post_author','post_date','post_title','post_modified',
'post_parent','post_type','name','author','date','title','modified',
'parent','type','ID','menu_order','comment_count','rand',
);
配列の末尾に、新たに追加した2つのカラム名を追記して変数:$post から必要な情報(ディレクトリ名と画像ファイル名)を引っ張り出せるようにした。(DBやテーブルを直接イジるのは後で問題が出る事多し…)
wp-content/themes/twentyten/functions.php に、参考サイトのコードをゴニョゴニョして追記。
wp-content/themes/twentyten/loop.php 139行目あたりの<div class=”entry-summary”>に画像表示と記事へのリンクを指定。
記事を新規投稿する際にディレクトリ名と画像ファイル名を指定する必要があり、wp-admin/post.php を通じて2つのカラムに対して値を登録・編集できるようにしないと使い勝手がすこぶる悪い・・・(´・ω・`)
・・・それならメディアライブラリ経由で表示させたほうが楽じゃね?(※正論)