質問者佐藤一様より、「ソート、絞り込みなどが出来る外部リンク一覧を作りたい」というご質問を頂きました。
カスタム投稿・カスタムフィールドを使う
リダイレクトを行う
といった方法があると思います。
それぞれのポイントをご紹介します。
目次
ソート、絞り込みなどが出来る外部リンク一覧を作りたい
現在、「あなたのURL」に入力したサイトを作成しています。
こちらのサイトではWooCommerceを使用して、商品一覧を作成しており、商品をクリックすると商品詳細ページへリンクし、そこから商品説明で外部リンク(アフィリエイト)へ飛ばしています。
しかし、商品詳細ページを経由せずに商品一覧から外部リンクへリンクさせたいと考えています。例えば下記のようなサイトのようにしたいです。
http://www.disney.co.jp/shopping.html
こちらのサイトは商品をクリックすると外部リンクへリンクしています。
また、カテゴリで絞り込んだりソートが出来たりもします。
このようなサイトを作成するにはどうすればよいでしょうか?
1つ考えたのは、商品ごとに投稿記事を作成し、投稿記事を一覧にすればよいのでは?
と考えましたが、一覧をクリックすると結局投稿記事へリンクするためできません。
ネットで調べているのですが、見つけられずに困っております。
よろしくお願い致します。
>佐藤様
コメントありがとうございます!
WooComerceは利用したことがありませんが、質問内容から、一覧ページの記事タイトルのリンクを記事URLから外部URLにする・・・ということで解決できるかと思います。
調べ方としては、「WordPress 記事リンク 外部リンク」のような調べ方の方が有用な記事を多く見つけられるかも知れませんね。
さて、ぱっと思いついたのはカスタムフィールドでURLを入力し、URLを置き換える方法ですが、テーマカスタマイズが必要です。
リダイレクトする方法もありますが、”サイト内のコンテンツが増えない”ことにもなりますので、SEO的にはマイナスとなるでしょう。
リダイレクト?カスタムフィールドでURLの追加?
記事のURLをリダイレクトさせるということは、記事ページが無くなるも同然です。もちろん記事のデータ自体はDBにあるので、カテゴリ・タグなどの一覧から記事を絞り込みさせることは可能です。リンクにアクセスした時のみ、リダイレクトされるだけですので。
しかし、検索結果に商品の記事ページが表示されることは無くなるでしょう。また、Adwordsなどで記事ページを宣伝することも出来なくなりそうですね。
対してカスタムフィールドを使う方法なら、記事のページ自体は存在するので、検索結果からの流入もある程度は見込めます。(一覧からなどのリンクがないので微妙ではありますが・・・)
記事リンクとは別に、【直接商品を確認する(外部リンク)>>】のようなリンクを設けることもできるでしょう。
ブラウザで記事自体のページにもアクセスできるので、記事ページ自体を広告することも可能です。しかし、テーマカスタマイズは必須なので手間がかかります。
これらのメリット・デメリットを踏まえた上で以下をご覧ください。
リダイレクトプラグイン・Redirection
Redirection(リディレクション)プラグインは、文字通りリダイレクトをさせるためのプラグインです。
用途としては主にページURLが変更となったときに、古いURLから新しいURLに移動させる目的などで使われています。
リディレクション
https://ja.wordpress.org/plugins/redirection/
ツール内にRedirectionが追加され、source URL に古いURL、target URLに新しいURLを入力し、add redirectすることでリダイレクトの処理を追加できます。
インポート機能なども備えており、仕様が変わっていなければ
source | target |
古いURL | 新しいURL |
といったCSVファイルを作ることで一括でリダイレクトを設定できます。
独自の管理画面内で行うのでリンク先の変更はちょっと手間でしょうかね。
リダイレクトプラグイン・Page Links To
アフィリエイトなどでリンク先が変わる場合はこのプラグインの方が良いかも知れません。
Page Links To
https://ja.wordpress.org/plugins/page-links-to/
『Page Links To』は、記事の編集画面の中にリダイレクトに関するメタボックスが出てくるので、記事毎にリダイレクトを管理できます。
記事を修正する感覚でリンク先を変えられるので、アフィリエイト向きと言えるかもしれません。
(設定するとこのようにパーマリンク部分が外部リンクに置き換わります)
カスタムフィールドを設けて、任意のURLがある場合はそのURLにするカスタマイズ
WordPressには投稿に任意の入力欄を設けて表示できる「カスタムフィールド」というものがあります。
記事編集画面内に
商品名:
価格:
備考:
欄を設けて料金表として表示する・・・といった用途ですね。
このカスタムフィールドに「URL」欄を設けて、URLに入力があれば記事のリンクを外部リンクに差し替える・・・というカスタマイズを行います。
カスタムフィールド
WordPress Codex 関数リファレンス/get post meta
上記のソースをもとにするなら、
$key_1_value = get_post_meta( get_the_ID(), 'key_1', true ); // カスタムフィールドが値を持つかチェック if ( ! empty( $key_1_value ) ) { echo $key_1_value; }
↓↓↓↓↓↓↓↓↓↓↓↓↓
$external_link = get_post_meta( get_the_ID(), 'url(カスタムフィールドの名称)', true ); // カスタムフィールドが値を持つかチェック if ( ! empty( $external_link ) ) { // 任意URLが空でなければ<a href=”カスタムフィールドのURL”>記事タイトル echo '<a href="' . $external_link . '">' . the_title() . '</a>'; } else { // 任意URLが空なら通常の記事リンク echo '<a href="' . the_permalink() . '">' . the_title() . '</a>'; }
といった形にすれば、URLの有無でリンク先を分けることができます。カスタム内容はテーマにもよります。また、上記コードも検証したわけではないので漏れがあったら申し訳ありません。”考え方”ととらえて頂ければ幸いです。
archive.php
index.php
など、記事の一覧を表示するテンプレートに上記のようなカスタマイズを行うことになるでしょう。
カスタムフィールドを管理しやすくするプラグインには、Advanced Custom Fields というプラグインが有名です。
「Advanced Custom Fields」「ACF」などで調べれば利用者もかなり多いので情報も豊富に出てきます。
Advanced Custom Fields
https://ja.wordpress.org/plugins/advanced-custom-fields/
ACFにはACF独自の出力方法も備えているので上記のget_post_metaよりも簡単かもしれません。
カスタム投稿
『投稿』や『固定ページ』と分けてこれを行いたい場合はさらに『カスタム投稿』を利用することになります。カスタム投稿はWordPress初心者さんであれば、ちょっとハードルが高い内容ではあります。
archive-【カスタム投稿スラッグ】.php
を、archive.phpのコピーから作る方法が分かりやすいと思います。
カスタム投稿タイプを管理・導入するのに便利なプラグイン
Custom Post Type UI (CPT UI)
https://ja.wordpress.org/plugins/custom-post-type-ui/
記事リンクを外部リンクにする方法まとめ
いかがでしょうか。
カスタムフィールドを使う方法はカスタマイズも必要になりますが、その分柔軟でもあります。
リダイレクトにするか、カスタムフィールドを導入するか、用途に合わせて考慮して頂ければと思います。