フィルタを利用すれば、記事一覧にテキストボックスでHTMLを埋め込めるぞ
WordPressなどでブログサイトを運営していると、記事の中で過去の記事を紹介したり、特定のテーマの記事をまとめて紹介する記事を作りたくなることがある。だが、タイトルとリンクをコピーして紹介リンクの形に整えるのは、記事数が多くなるとなかなか大変だ。サムネイル画像を付けるとなるとさらに手間がかかる。
なるべく手軽に記事紹介リンクを作成できるようにしたいところだ。
WordPressには記事リンク作成のためのプラグインもいくつか存在するが、簡易的な物であればテーマディレクトリの「functions.php」に簡単なスクリプトを書き加えるだけで実現できる。
今回は、記事一覧ページの列としてテキストボックスで記事紹介リンクのHTMLを表示する方法を紹介しよう。
function add_list_col($cols){ $cols['list_html']='紹介HTML'; return($cols); } add_filter('manage_posts_columns','add_list_col'); function list_col_html($cname,$pid){ if($cname=='list_html'){ $img=wp_get_attachment_image_src(get_post_thumbnail_id($pid),'thumbnail'); $html='<h3><a href="'.get_permalink($pid).'">'.htmlspecialchars(get_the_title($pid)).'</a></h3><img src="'.$img[0].'" width="'.$img[1].'" height="'.$img[2].'" />\n\n'; ?><textarea rows="1" cols="4" readonly onclick="this.focus();this.select()"><?=htmlspecialchars($html)?></textarea><?php } } add_action('manage_posts_custom_column','list_col_html',10,2);
管理画面の記事一覧に紹介リンクのHTMLを埋め込むには、functions.phpに上記のようなスクリプトを書き加えればいい。「$html=」以降が、記事紹介HTMLを組み立てる部分なので、好きな書式に書き換えよう。
記事一覧画面にこのような列が追加される。各テキストエリアは非常に小さいが、クリックすると内容が全て選択された状態になり、簡単にコピペ可能だ。
コピーしたHTMLを記事に貼り付ければ、簡単に過去記事を紹介する記事を作成出来るぞ。
記事一覧ページ右上の「表示オプション」では、列の表示の有無を手軽に切り替えられるので、たまにしか使わなくて邪魔な場合は非表示にしておくといいだろう。