Wordpressで外部へのテキストリンクのみ外部リンクを示すマークを表示する方法 | Knowledge Base

【備忘録】外部へのテキストリンクのみ外部リンクを示すマークを表示する方法

最近では内部・外部リンクをカード形式で表示することが主流になってきましたが、いちいちカードで表示するとリンクの多い情報系のサイトでは邪魔だったりしますよね?

でも通常のリンクだと内部リンクと外部リンクの区別がつかないし・・・そんなときに使える方法を紹介します。

言葉ではイメージがわかないと思いますのでこちらをご覧ください。

見たことありますよね??今回はWikipediaなどの情報サイトなどでよく見るこんなマークを外部リンクにだけ表示する方法を紹介します。

テーマのCSSに情報を追加し、リンクの書き方を変えるだけで簡単に実装できますのでチャレンジしてみてください。

※テーマによってリンク挿入時の挙動が違うことがありますのですべてのサイトで有効というわけではありません

※Wordpressの本文内でということで紹介しますが一般的なhtmlのサイトでも使えると思います。

基本となるリンクの書き方とCSS

通常リンクを挿入する場合内部リンクも外部リンクも

<a href="リンク先のURL">リンク文字列</a>
と書き、「リンク先のURL」はいずれも「http(s)://~」を入力すると思います。

これを内部リンクと外部リンクでまずは分けます

  1. 内部リンクの場合・・・相対リンクにする
  2. ドメインの部分を省いて「リンク先URL」を指定します

    例)https://www.momosiri.info/abc/の場合、abcだけ入力します

  3. 外部リンクの場合・・・通常の絶対リンクにする
  4. いつもの書き方通りドメイン名から完全なURLを入力します

これで準備は完了です(環境によっては相対リンクが効かないこともありますから、すべての記事の書き換えをしてしまう前にテスト記事などできちんとリンクになるかを確認してくださいね)。

確認ができたらCSSへ次のコードを追記します。

a[href^="http://"]:after,
a[href^="https://"]:after
{
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f35d";
  margin-right: 5px;
}
a[href^="サイトのドメイン"]:after
{
	content: "";
	margin: 0;
}

※サイトのドメインとなっているところは使用するサイトのドメインを入力してください

コードの簡単な説明をすると、リンクURLにhttpまたはhttpsが付いていたらリンク文字列の後ろにマークを表示してね!というコードになります。そして下段は判断に間違いがないように「サイトのドメイン」に入力したものが含まれていたら空の文字列を表示(要するにマークを表示しないでね)という内容となっています。

ここまで設定したらテストページを見てみてください。

ん??マークじゃなく□が表示されるだけじゃん!!とお怒りの方、ここから対応方法を紹介します。

アイコンフォントが使用できるようにしよう

↑のCSSに書かれている「\f35d」という文字列は、アイコンフォントと言って広く無料で配布されているマークになります。もしも□で表示されるときはこのアイコンフォントが使用できる状態にない環境ということになり、表示できないから□が表示されている状態なのです。

従ってアイコンフォントが表示できるようにすれば問題解決できます。

通常アイコンフォントを使うにはサーバー内にファイルを保存してヘッダーで呼び出すという方法が定石だと思いますが、ちょっと面倒ですし、せっかくWordpressには便利なプラグインというものがあるので、今回は

Wordpressの標準機能では使用できないアイコンフォントを有効化するだけで使えるようにするのが「Easy FontAwesome」プラグインです。

というプラグインを使います(ほかにも「Awesome」などの単語でプラグイン検索をすればいろいろありますからどれかを選んでください)。

↑のプラグインの場合は使うと言ってもインストールして有効化するだけ、これでアイコンフォントが利用できるようになります。

Facebookなどのシェアアイコンが表示されているのに追加したものだけ□になるときは

今回の外部リンクマークも、シェアボタンなどに使用されているマークもアイコンフォントというのを使用しています。もしもシェアボタンのアイコンが表示されるのに、外部リンクマークだけ表示されない場合には

を参考に対応してみてください。プラグインを追加する必要はない場合が多いですよ。

ヘッダーやメニュー・サイドバーまですべてマークがついてしまうときは

大抵のテーマではこの現象が発生します。特にサイドバーなどに作成したリンクは参考記事など外部リンクであることが多いので全部にマークがついてしまいますね。

それでよければそのままでいいのですが、できれば本文にだけ表示させたいという方も多いはず。

ということで今回は「simplicity2」テーマの場合でのカスタマイズ方法を紹介しておきます。他のテーマでも本文を示すidセレクタが必ずあると思いますのでデベロッパーツールで調べてください。

ざっくりと「Simplicity2」テーマであれば↑のCSSコードを一旦削除し

#the-content a[href^="http://"]:after,
#the-content a[href^="https://"]:after
{
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	content: "\f35d";
  margin-right: 5px;
}
#the-content a[href^="サイトのドメイン"]:after
{
	content: "";
	margin: 0;
}
に変えれば本文内にあるもののみマークがつくようになります。

要するにidセレクタ(↑の場合は「#the-content 」)指定するだけです。CSSの基本がわかっている方なら問題ないでしょう(というかこの部分を読む必要もないでしょう)。


いかがでしたか??こんなに簡単にテキストでの外部リンクのみにマークが付けられるなんてびっくりですね。

テキストリンク派の方、ぜひ試してみてください。

トップへ戻る