• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

投稿、固定ページ、カテゴリーへのリンク

提供: WordPress Codex 日本語版
移動先: 案内検索

あるコンテンツページから別のページに内部リンクを作成する場合 WordPress には2つの方法があります。1つはパーマリンクを使用する方法、もう1つはパーマリンクを使用しない方法です。後者の方法は、サイトでのパーマリンク機能の有効、無効に関わらず動作します。

パーマリンクを使用しないリンク

パーマリンクを使用せずに、どのように投稿やカテゴリー、固定ページにリンクを作成するのでしょうか?

これには投稿 ID、カテゴリー ID、固定ページ ID のような数値を使用してリンクを作成します。

投稿

投稿 ID は「投稿」画面内で対象となる投稿のタイトルの上にマウスを移動するとブラウザのステータスバーに表示される URL 内の一部として「...?post=89」の形式で表示されます。次のリンク内の「123」の位置に、この投稿 ID を挿入してください。

<a href="/index.php?p=123">投稿のタイトル</a>

カテゴリー

カテゴリー ID は「カテゴリー」画面内で対象となるカテゴリーの名前の上にマウスを移動するとブラウザのステータスバーに表示される URL 内の一部として「...&tag_ID=3」の形式で表示されます。次のリンク内の「7」の位置に、このカテゴリー ID を挿入してください。

<a href="/index.php?cat=7">カテゴリーのタイトル</a>

固定ページ

固定ページ ID は「固定ページ」画面内で対象となる固定ページのタイトルの上にマウスを移動するとブラウザのステータスバーに表示される URL 内の一部として「...?post=15」の形式で表示されます。次のリンク内の「42」の位置に、この固定ページ ID を挿入してください。

<a href="/index.php?page_id=42">固定ページのタイトル</a>

日付別アーカイブ

日付別アーカイブの特定の年のページにリンクするには、次のリンクの「2015」の部分を希望の年で置換します。

<a href="index.php?m=2015">2015</a>

特定の年月のアーカイブページにリンクすることもできます。「YYYYMM」形式で年に続けて月を指定します。同様に「YYYYMMDD」形式で特定の年月日のアーカイブページにリンクできます。

<a href="index.php?m=201501">2015年1月</a>
<a href="index.php?m=20150101">2015年1月1日</a>

外部サイトのリンク

外部サイトからサイト内にリンクを張る場合は、フルパス URL で正しい位置を指定してください。

<a href="http://example.com/index.php?p=123">投稿のタイトル</a>

例えばサブフォルダー「wordpress」に WordPress をインストールした場合、リンクの URL には忘れずにフォルダー名を追加してください。

<a href="http://example.com/wordpress/index.php?p=123">投稿のタイトル</a>

パーマリンクを使用したリンク

パーマリンクを有効化していても、上のすべての方法を使用できます。パーマリンクの使用の有無は関係ありません。ただしパーマリンクを使用すれば選択肢が広がり、暗号めいた数字よりユーザーフレンドリーな形式でリンクをサイトの訪問者に提供できます。

URL の複雑さはパーマリンクの複雑さによります。管理画面の「設定」 > 「パーマリンク設定」で設定されるパーマリンク設定に多くの 構造タグが含まれる場合、URL の構築は困難になります。

投稿

投稿の場合、投稿の URL 構築にふさわしいデータでパーマリンク構造内の各構造タグを置き換えてください。たとえばパーマリンクが以下であれば

/index.php/archives/%year%/%monthnum%/%day%/%postname%/

構造タグに値を入れると次のような URL が生成されます。

<a href="/index.php/archives/2015/04/22/my-sample-post/">サンプルの投稿</a>

投稿の正しい URL を取得するもっとも簡単な方法は、実際に WordPress ブログ内の投稿にアクセスし、WordPress が生成するリンクから URL をコピーする方法でしょう。

個々の投稿の URL 構築の詳細については「パーマリンクの使い方」の情報を参照してください。

カテゴリー

パーマリンクを使用したカテゴリーへのリンクを生成するには、管理画面の「設定」 > 「パーマリンク設定」で取得される「カテゴリーベース」の値にカテゴリー名を追加します。

たとえばカテゴリーベースが「/index.php/categories」のとき、カテゴリー「testing」にリンクするには次のリンクを使用します。

<a href="/index.php/categories/testing/">カテゴリーへのリンク</a>

サブカテゴリーへのリンクを指定するには、上のようにサブカテゴリーディレクトリを使用するか、次のようにURL 内にすべての親カテゴリーを指定します。

<a href="/index.php/categories/parent_category/sub_category/">サブカテゴリーへのリンクk</a>

固定ページ

固定ページにはカテゴリーと同様の階層があり、「親」を持てます。階層の最上位レベルの固定ページにリンクするには、パーマリンク構造の固定部分に続けて、ページの「ページスラッグ」を指定するだけで済みます。

<a href="/index.php/a-test-page">テスト用の固定ページ</a>

繰り返しになりますがもっとも良い URL の確認方法は、ブログで実際のページにアクセスし、リンクで使用する予定の URL と WordPress で生成された URL を比較する方法です。

日付別アーカイブ

日付別アーカイブの指定した年のアーカイブにリンクをするには、アーカイブのベースリンクに年を追加します。たとえばベースリンクが「/index.php/archives/」のとき、2015年のアーカイブにリンクするには、以下を使用します。

<a href="/index.php/archives/2015">2015</a>

「年」に続けて「月」や「日」の値を指定すれば希望の月や日のアーカイブにリンクできます。

<a href="/index.php/archives/2015/01/">2015年1月</a>
<a href="/index.php/archives/2015/01/01/">2015年1月1日</a>

外部サイトのリンク

パーマリンクはスラッシュ (/) で始まる必要があります。これはサイトの URL のルートに紐づくことを意味します。スラッシュで始まる任意のリンクの前にプロトコルとサーバー名を指定して完全な URL を構築できます。

たとえば次のカテゴリーリンクは

<a href="/index.php/categories/parent_category/sub_category/">サブカテゴリーへのリンク</a>

次の完全な URL を使用したカテゴリーリンクになります。

<a href="http://example.com/index.php/categories/parent_category/sub_category/">サブカテゴリーへのリンク</a>


リンクとテンプレートタグの組み合わせ

各種リンクを組み合わせてヘッダー、フッター、サイドバーのリンクをカスタマイズできます。次の例には、2つのカテゴリーリンク、メインのindex.php、投稿、固定ページへのリンク、ページテンプレートタグを使用したリンクがあります。

注意: wp_list_pages() テンプレートタグは自身のリスト要素 (LI) を生成します。このため LI タグで囲む必要はありません。またこのテンプレートタグではサブページや「子」を含まない、親の固定ページのみを一覧で設定します。

<ul id="linklist">
 <li>
  <?php _e('要チェック!'); ?>
  <ul id="pageslist">
   <li>
    <a title="Home Page" href="index.php">ホーム</a>
   </li>
   <li>
    <a title="Blog" href="index.php?cat=7">ブログ</a>
   </li>
   <li>
    <a title="Life Story" href="index.php?p=12">わたしの人生</a>
   </li>
   <?php wp_list_pages('exclude=4&depth=1&sort_column=menu_order&title_li='); ?>
   <li>
    <a title="Links and Resources" href="index.php?cat=33">リンク</a>
   </li>
   <li>
    <a title="Site Map" href="sitemap.php">サイトマップ</a>
   </li>
  </ul>
 </li>
</ul>

このようなカスタマイズしたリストを使用する場合、CSS クラスを追加してリンクの見た目を変更したり、節全体のスタイルを設定できます。すべてあなた次第です。


絶対リンクと相対リンク

絶対リンク」はリンク先を「絶対的」に定義します。

相対リンク」は他のドキュメントの位置を現行ドキュメントとの「関連」で定義します。


絶対リンクの例

http://example.com/wordpress/index.php」のような形式の完全な URI は絶対リンクです。

絶対リンクでは自身のサーバーを指すこともできます。この場合には先行する http://domain.com を安全に省略し、次の完全パスでリンクを作成できます。

/wordpress/index.php

先頭のスラッシュは「このドメインの最上位がディレクトリ「wordpress」であり、このディレクトリ内にファイル「index.php」がある」ことを意味します。

ドキュメント

http://example.com/wordpress/index.php

に次の形式のリンクがある場合、

/wordpress/index.php

このリンクがクリックされると、ブラウザは以下にジャンプします。

http://example.com/wordpress/index.php

相対リンクの例

相対リンクはスラッシュで始まりません

wordpress/index.php

先頭のスラッシュがないことは「現行ディレクトリ内にサブディレクトリ「wordpress」があり、このディレクトリ内にファイル「index.php」がある」ことを意味します。

ドキュメント

http://example.com/wordpress/index.php

に次の形式のリンクがある場合、

wordpress/index.php

このリンクがクリックされると、ブラウザは以下にジャンプします。

http://example.com/wordpress/wordpress/index.php

次に、以下のブログ記事を編集しているとします。

http://example.org/blog/2015/01/04/nurds-on-the-loose

この投稿から、次のリンクを作成できます。

  1. <a href="../01/happy-new-year">新年のあいさつ</a>
  2. <a href="../../01/01/happy-new-year">新年のあいさつ</a>
  3. <a href="../../../2015/01/01/happy-new-year">新年のあいさつ</a>
  4. <a href="../../../2014/12/25/merry-christmas">クリスマスのあいさつ</a>

注意: 1、2、3はすべて正しく同じリンクを指します。4のリンクにショートカット版はありません。昨年の記事にたどり着くにはすべてのパスを「登る」必要があります。

リンクはすべて相対リンクです。必要以上に余計な知識をハードコードする必要はありません。それに、ある日、どこか別の場所にブログをエクスポートする際のポータビリティにも優れます(ある日、管理画面で別のパーマリンク構造を指定して何が起きるかは誰にも分かりません。)

しかし, ここでは常に単一の投稿を見ていると仮定しています。事実、アーカイブ内の同じ投稿を見ているのであれば、現在のすべての仮定は間違っていることになります! 相対パスがどんなに賢く見えても致命的な欠陥がありますが選択の余地はないのです!

絶対リンク、相対リンクの詳細については WebReference 絶対リンクと相対リンクのチュートリアル (英文) を参照してください。

テンプレート内の動的なリンク

パーマリンクを使用するしないに関わらず、テンプレートでは固定ページや投稿に対して、管理インターフェースのいくつかのページで見られるように一意の数値 ID を参照して動的なリンクを作成できます。

<a href="<?php echo get_permalink(ID); ?>">これはリンクです。</a>

get_permalink を参照してください。

この方法はページメニューを作成する際に便利です。後でページスラッグを変更しても ID は同じままのためリンクが壊れません。ただしデータベースの照会は増えます。

なお動的なページメニューは wp_list_pageschild_of パラメータや、多くのプラグインを使用しても作成できます。

RSS

すべての RSS 閲覧環境では、完全修飾のリンク (http:...) のみが動作保証されているようです。


最新英語版: WordPress Codex » Linking_Posts_Pages_and_Categories最新版との差分