WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

リンク先をサイズ指定した別窓(ポップアップ風)で表示する方法(+WordPressのリストでの応用)

公開日:2016年9月20日 使い方など

最近ではあまり見られなくなった「別窓」でのリンク先表示。タブブラウザが主流となったことや、過去にこの機能を悪用されたケースがあったことから、現在リリースされているほとんどのブラウザでは、この動作を完全に制御して特別なコードなしでは動作しないようになっています。

とはいえ、通販サイトや銀行などのサイトで契約を行う際の注意事項を表示する場合などでは今でもこの「別窓」表示を使っているところがあり、インライン表示(同一ページ内にスクロール付きで表示する)したり、別タブで表示したりするよりもきちんと読んでもらえる可能性が高いという理由で使い続けられています。

いったいどうやってこの機能を実現しているのか・・・疑問に思いましたのでいろいろ調べてみたところ、簡単なコードでこの「別窓」表示が実装できることが解りましたので、備忘録として書いておきます。

おまけ情報として、Wordpressなどデータベースを用いたCMSでPHPを使ってリスト表示をしつつ、この機能を追加する方法も紹介していますので、興味のある方はご覧ください。

基本となるリンクコード

リンク先を別窓で表示するための基本となるコードは

<a href="リンク先URL" onclick="window.open('リンク先URL', 'newwindow', 'width=別窓の幅, height=別窓の高さ'); return false;">リンク文字</a>
【注意】コードをコピーして使用する前に必ずお読みください

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

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

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

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

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

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

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

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「'」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

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

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

です。意外に簡単なコードで実装できるようになるのでびっくりしました。

コードの解説

基本的には通常のaタグ(リンクタグ)を用います。普通は属性の指定で「target=”_blank”」を用いて別タブでの表示をさせることがポピュラーなのですが、これだと元のタブから離れてしまうので元のページへ戻れなくなる可能性があります。そこで

onclick="window.open('リンク先URL', 'newwindow', 'width=別窓の幅, height=別窓の高さ'); return false;"
【注意】コードをコピーして使用する前に必ずお読みください

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

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

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

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

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

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

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

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「'」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

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

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


という属性を用いることで、ポップアップのような別窓を使って表示するようにします。

上記のコードの中で

  1. リンク先URL/2か所ありますので同じURLを完全なURLまたは相対URLで記述します
  2. 別窓の幅/別で開く窓の幅をピクセル単位で入力します(autoと入力すると自動調整されます)
  3. 別窓の高さ/別で開く窓の高さをピクセル単位で入力します(autoと入力すると自動調整されます)
  4. リンク文字/リンクのアンカー文字を入力します

WordPressで投稿リストなどに応用する方法

WordPressで投稿などのコンテンツ一覧を表示するには


で紹介したコードを使い、上記のように別窓で表示するための属性を追加します。
<ul style="list-style:none">
<?php
    $wp_query = new WP_Query();
    $param = array(
        'posts_per_page' => '3', //表示件数。-1なら全件表示
        'post_type' => array('post','page'), //カスタム投稿タイプの名称を入れる
        'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
        'orderby' => 'modified', //ID順に並び替え
        'order' => 'DESC'
    );
    $wp_query->query($param);
    if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
?>
<li><a href="<?php the_permalink(); ?>"  onclick="window.open('<?php the_permalink(); ?>', 'newwindow', 'width=別窓の幅, height=別窓の高さ'); return false;"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
</ul>
【注意】コードをコピーして使用する前に必ずお読みください

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

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

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

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

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

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

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

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「'」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

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

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


というコードをそのまま使います。上のパラメーターの設定を行った後、

  1. 別窓の幅/別で開く窓の幅をピクセル単位で入力します
  2. 別窓の高さ/別で開く窓の高さをピクセル単位で入力します

を設定するだけです。リンクのURLは自動で抽出され、リンク文字は投稿などのタイトルが使われます。

番外編 サムネイル画像と抜粋を追加する

上の一覧ではタイトルにリンクが付くだけなのでちょっと寂しいという方のために、アイキャッチ画像と抜粋を入れたリストを追加して表示するためのコードを紹介しておきます。

<ul style="list-style:none">
<?php
    $wp_query = new WP_Query();
    $param = array(
        'posts_per_page' => '3', //表示件数。-1なら全件表示
        'post_type' => array('post','page'), //カスタム投稿タイプの名称を入れる
        'post_status' => 'publish', //取得するステータス。publishなら一般公開のもののみ
        'orderby' => 'modified', //ID順に並び替え
        'order' => 'DESC'
    );
    $wp_query->query($param);
    if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
?>
<li><?php the_post_thumbnail('thumbnail', array( 'class' => 'alignleft' )); ?><a href="<?php the_permalink(); ?>"  onclick="window.open('<?php the_permalink(); ?>', 'newwindow', 'width=別窓の幅, height=別窓の高さ'); return false;"><?php the_title(); ?></a><br>
<?php echo mb_substr(get_the_excerpt(), 0, 65); ?>…<br clear="left"></li>
<?php endwhile; endif; ?>
</ul>
【注意】コードをコピーして使用する前に必ずお読みください

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

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

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

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

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

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

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

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「'」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

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

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


設定方法は前述したリストと同じです。何が変わったかというと

  1. サムネイル画像を抽出してタイトルの左側に表示
  2. コンテンツの抜粋に入力されている内容を65文字文抽出してタイトルの下に表示

というのを付け加えています。

リンク先の表示方法として知っておくと便利なコードですので是非試してみてください。

最後に

この方法を使って表示するとちょっとかっこいい表現ができるようにはなるのですが、Google Adsenseなどではこの方法が広告表示の規約に違反する行為と認識されてしまうことがあるようですから、既存のWordpressのページなどを表示する際には広告表示をOFFにするなど誤解されないように工夫が必要かもしれません。使用については自己責任でお願いします。

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。

QR Code

このページはモバイル端末でもご覧いただけます

左のQRコードを読み取っていただくと、このページのURLが表示され、簡単にアクセスできます。ぜひモバイル端末でもご覧ください。

WordPressのカスタマイズ・不具合対応などご相談ください

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

【スポンサーリンク】