【WordPress】カスタム投稿タイプと「Internal Link Building」プラグインで自動リンクの用語集を作る

公開日: 更新日: Wordpress
Knowledge Base Wordpress パソコン カスタマイズ 設定




登録した用語に対して説明ページを表示する「用語集」。Wordpressにはこの類の機能を実装するプラグインがたくさんリリースされていますが、日本語に対してリンクしてくれなかったり、肝心な機能が有料化されていたりするので実際に使えるものが少ないです。自動リンクを設定する部分は手動作業になりますが、後々でも使えそうな用語集(用語説明へのリンク)を作ってみたいと思います。

用語集に必要な要件

  1. 通常の記事とは別に管理したい
  2. 通常の記事に含まれる単語と用語集のページを自動でリンクさせたい
  3. 用語集の一覧を作りたい

用語集としてサイトの中のコンテンツを作るには上記のような要件が必要になってくると思います。これを実現させるためにプラグインを2つ使って作成していきたいと思います。

「用語集」用の記事を作る

用語集に使う記事は通常の記事とは別に管理したいです。通常の記事と混在させてカテゴリー分けをしておく手もありますが、用語が増えてくると管理が煩雑になってしまいますので、目的の記事を集めたものを作成します。
これを作成するためにはWordpressの機能である「カスタム投稿タイプ」を使います。「カスタム投稿タイプ」は通常の記事の集まりとは別に目的別の記事の集まりを作ることができる機能です。
「カスタム投稿タイプ」は「Custom Post Type UI」というプラグインを使うと簡単に作成できます

を見て用語集用の投稿を作成しましょう。

「用語」と「用語集」を自動で結びつける

用語集作りで肝心な機能である「今公開している記事の中に用語集のキーワードが出て来たとき、自動でリンクを張る」部分を実装します。
これを行うのに「Internal Link Building」というプラグインを使います。結び付けるための登録は手動になりますが、いったん設定すれば勝手にリンクを作成してくれるので便利です。

用語の一覧を作る3つの方法

1.カスタム投稿タイプのアーカイブ一覧を使う

用語の一覧=カスタム投稿タイプの一覧ということになります。これは通常の投稿で使われる投稿一覧と変わりないので、ひとまずはそれを使って表示します。
http://サイトURL/カスタム投稿タイプの名前/
がカスタム投稿タイプの記事一覧となるので、そこへのリンクを設置すれば完了です。
カスタム投稿タイプにはカスタムカテゴリーといってカスタム投稿タイプ用のカテゴリー設定もできますので、「あいうえお順」に表示するのであればカスタムカテゴリーにあらかじめ「あ、い、う、え、お」それぞれのカテゴリーを作っておいて、用語登録の際にカテゴリー登録しておけば表示することができます。

2.自分で投稿を並び替えて表示させる

通常のアーカイブ一覧は投稿一覧の順に表示されますからドラッグアンドドロップで順番を簡単に変更できるプラグインを使用すればカテゴリーや登録した用語の順序もカスタマイズできます。

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>
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. 上のようなことがないのに更新できない
  6. 特に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。

コードを転載する場合には

ご自身のサイトで当ページのコードを転載される場合には必ず当ページへのリンクを入れていただきますようお願いいたします

簡単に説明すると
ulタグを使って条件に合う投稿の一覧をタイトル順に並び替えて、タイトルのみ表示し、そのページにリンクをするというものです。

「カスタム投稿タイプのスラグ」の部分のみ自身の環境に合わせて設定すれば基本的に設定完了です。

さいごに

wordpressでサイトを作っていて思うことは、いくつかの機能をもつ設定やプラグインを知っているとアイデア次第でいろいろなことができるということです。カスタム投稿タイプは元来別の表示方法を取りたい記事の集まりを作るための機能ですし、「Internal Link Building」も記事同士をリンクさせて内部リンク構造を強化するためのプラグインです。専用のプラグインを必死に探すよりも今使っている機能の中で同様の動作ができないかを考えるとプラグインの削減にもなり、サイトの表示速度も改善されると思います。

いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】