WordPressの記事文書にURLがあれば取得して表示する方法
WordPressの記事文書内にURL(外部サイトへのリンク)がある場合に取得して、表示させる方法をご紹介します。
記事を作成していると、文書にURLを記述することがあると思います。
もしも、文書内にURLがあれば別の場所にも表示することができます。
それ程使い道は無いかもしれませんが、以下のような使い方ができると思います。

上記では、文書にYouTubeのURLが含まれていたので、自動的にURLを含む「動画を見る」ボタンを表示させることができます。
使い方によってはサイト作成のアイデアが拡がるはずです。
URL取得概要
1.URLを取得する範囲を記事内にします。
2.文書内に外部リンクがあれば正規表現を使いURLを取得
3.取得したURLを表示したい場所にコードを記述すると表示されます。
使用方法
1.以下のコードをfunctions.phpに記述します。
//functions.phpに定義する関数
function get_index() {
//グローバル変数を使う為の宣言
global $post;
//マッチングでURLを取得する
preg_match_all('/(https?|ftp)(:\/\/www.youtube|:\/\/www.nicovideo)([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/u', $post->post_content, $matches);
//取得したURLの個数をカウント
$matches_count = count($matches[0]);
if($matches[0][0]){
//URLがある場合の出力
echo '';
} else {
//URLがない場合の出力
echo "No URL";
} if($matches[0][1]){
//URLがある場合の出力
echo '';
} if($matches[0][2]){
//URLがある場合の出力
echo '';
}
}
上記コードのpreg_match_allに表示されている「YouTube」と「ニコニコ動画」のURLを取得します。
「動画を見る」に変換されて、外部リンクへの文になります。
なお、取得URLは「YouTube」や「ニコニコ動画」だけでなく他の動画サイトも可能です。preg_match_allのURL部分を他の動画サイトURLに変更してください。
なお、取得できるURLは最大3つまでですが、それ以上ある場合は、コードの記述を増やしてください。必要ないときは、記述を減らしてもOKです。
また、記事文書内にURLがない場合は、デフォルトで「No URL」が表示されるようになっています。
不要な場合は、
else {
//URLがない場合の出力
echo "No URL";
}
の部分を消してください。URLがない場所は何も表示されません。
2.以下のコードを表示したい部分に記述します。
<?php get_index();?>
また、このコードは記事を作成するエディターに直接記述しても表示されません。
使用例
文書内に「YouTube」の動画を紹介する記事を作成しました。
以下の文書では、記事内の動画URLを取得して、最後に動画URLを含む「動画を見る」を自動表示させています。
最高の無料Wordpressのテーマ2016は、Wordpressのための最高の無料のテーマです。是非好みのテンプレートを見つけてください!
以下は動画のURLです。「https://www.youtube.com/watch?v=6jENMAX6r-Y」
MaxStoreは無料のWooCommerceワードプレステーマです。MaxStoreはWooCommerceプラグインに基づいたWordPressの電子商取引のテーマです。このテーマは、様々な場面に最適です。ブートストラップとCSS3を使用して構築されたこのクリエイティブなテーマは、あらゆるデバイスで完璧な外観が得られるように完全に反応するデザインです。テーマは完全に翻訳準備が整っており、全てのシステムが含まれます。
私たちは自由で最高のワードプレスのテーマのいくつか紹介します!これらのテーマの多くは、レスポンスとeコマースの互換性を持っています。私はすべてのブログで同じ自由なテーマを探していました。これらの無料のテーマは、いくつかのより多くの注目に値します!私は、ワードプレスに新しく追加された機能であることを知っているので、私は個人的にこれらのテーマの殆どを使用していました。それが、次の動画の内容です。「https://www.youtube.com/watch?v=jn3O4wOlF3Q」
WordPressのこれらの新しい最高の無料テーマのいくつかと最高のWordPressサイトを作りましょう!
記事内にURLが2つあるため、最後の段落にYouTube動画にアクセスできる外部リンクが自動表示させます。

記事を一つ一つ手動で書いている場合には、余り必要のないシステムだと思います。
但し、ポータルサイトや自動記事作成システムなどで記事を大量生産している場合、URLを取得して表示させる必要があるときに便利なシステムです。
設定を変えればURLだけでなく、画像や広告、単語なども取得して表示ができると思います。
文書から色々な情報を取得して、アイデア次第で何か便利なことが出来るかもしれません。
おまけ
記事文書内の最初のリンクを取得する方法として、以下の方法もあります。使用する場合は、下記のコードをfunctions.phpに記述して、それをテンプレートファイルのループ内で使用します。
function get_link_url() {
$content = get_the_content();
$has_url = get_url_in_content( $content );
return ( $has_url ) ? $has_url : apply_filters( 'the_permalink', get_permalink() );
}