登録した用語に対して説明ページを表示する「用語集」。WordPressにはこの類の機能を実装するプラグインがたくさんリリースされていますが、日本語に対してリンクしてくれなかったり、肝心な機能が有料化されていたりするので実際に使えるものが少ないです。自動リンクを設定する部分は手動作業になりますが、後々でも使えそうな用語集(用語説明へのリンク)を作ってみたいと思います。
用語集に必要な要件
- 通常の記事とは別に管理したい
- 通常の記事に含まれる単語と用語集のページを自動でリンクさせたい
- 用語集の一覧を作りたい
用語集としてサイトの中のコンテンツを作るには上記のような要件が必要になってくると思います。これを実現させるためにプラグインを2つ使って作成していきたいと思います。
「用語集」用の記事を作る
用語集に使う記事は通常の記事とは別に管理したいです。通常の記事と混在させてカテゴリー分けをしておく手もありますが、用語が増えてくると管理が煩雑になってしまいますので、目的の記事を集めたものを作成します。
これを作成するためにはWordPressの機能である「カスタム投稿タイプ」を使います。「カスタム投稿タイプ」は通常の記事の集まりとは別に目的別の記事の集まりを作ることができる機能です。
「カスタム投稿タイプ」は「Custom Post Type UI」というプラグインを使うと簡単に作成できます
カスタム投稿タイプやカスタムタクソノミー(分類)を簡単に作るプラグイン「Custom Post Type UI」
を見て用語集用の投稿を作成しましょう。
「用語」と「用語集」を自動で結びつける
用語集作りで肝心な機能である「今公開している記事の中に用語集のキーワードが出て来たとき、自動でリンクを張る」部分を実装します。
これを行うのに「Internal Link Building」というプラグインを使います。結び付けるための登録は手動になりますが、いったん設定すれば勝手にリンクを作成してくれるので便利です。
日本語にも対応している自動キーワードリンクプラグイン「Internal Link Building」
用語の一覧を作る3つの方法
1.カスタム投稿タイプのアーカイブ一覧を使う
用語の一覧=カスタム投稿タイプの一覧ということになります。これは通常の投稿で使われる投稿一覧と変わりないので、ひとまずはそれを使って表示します。
http://サイトURL/カスタム投稿タイプの名前/
がカスタム投稿タイプの記事一覧となるので、そこへのリンクを設置すれば完了です。
カスタム投稿タイプにはカスタムカテゴリーといってカスタム投稿タイプ用のカテゴリー設定もできますので、「あいうえお順」に表示するのであればカスタムカテゴリーにあらかじめ「あ、い、う、え、お」それぞれのカテゴリーを作っておいて、用語登録の際にカテゴリー登録しておけば表示することができます。
2.自分で投稿を並び替えて表示させる
通常のアーカイブ一覧は投稿一覧の順に表示されますからドラッグアンドドロップで順番を簡単に変更できるプラグインを使用すればカテゴリーや登録した用語の順序もカスタマイズできます。
いろいろな一覧の並び順をドラッグ&ドロップで変更できるプラグイン「Simple Custom Post Order」
3.固定ページにphpコードを使って表示する
用語の一覧なのですからタイトルだけ表示されればいいのですが、1と2の方法では投稿アーカイブ一覧を使うことになるので、ブログカードなどで投稿一覧が表示されるテーマでは少々見づらいものになってしまいます。固定ページを作ってそこにphpコードを挿入することでタイトルのみの一覧が作成できます。固定ページや投稿でphpを使うためには「Exec PHP」などのプラグインを導入することが前提です。
挿入するコードは
<ul style="list-style:none">
<?php
$wp_query = new WP_Query();
$param = array(
'posts_per_page' => '-1', //表示件数。-1なら全件表示
'post_type' => array('カスタム投稿タイプのスラグ'), //カスタム投稿タイプの名称を入れる
'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
'orderby' => 'title', //タイトル順に並び替え
'order' => 'asc'
);
$wp_query->query($param);
if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
</ul>
簡単に説明すると
ulタグを使って条件に合う投稿の一覧をタイトル順に並び替えて、タイトルのみ表示し、そのページにリンクをするというものです。
「カスタム投稿タイプのスラグ」の部分のみ自身の環境に合わせて設定すれば基本的に設定完了です。
さいごに
wordpressでサイトを作っていて思うことは、いくつかの機能をもつ設定やプラグインを知っているとアイデア次第でいろいろなことができるということです。カスタム投稿タイプは元来別の表示方法を取りたい記事の集まりを作るための機能ですし、「Internal Link Building」も記事同士をリンクさせて内部リンク構造を強化するためのプラグインです。専用のプラグインを必死に探すよりも今使っている機能の中で同様の動作ができないかを考えるとプラグインの削減にもなり、サイトの表示速度も改善されると思います。