【WordPress】現在のページURLを取得する2つの方法
WordPress
こんにちは、岐阜・名古屋を拠点に全国各地からご依頼いただくWEBサイトを制作しているフリーランスエンジニアの寺井です。
この記事ではWordPressサイトで現在ページのURLを取得する方法を解説したいと思います。
この記事の目次を表示
WordPressのループ内の場合
WordPressの関数を使用する
WordPressのループの中であれば以下のどちらかの方法で現在ページのURLを取得できます。
<?php the_permalink(); ?>
<?php echo get_the_permalink(); ?>
メインループ・サブループとは
今回の記事とは直接関係ないですが補足程度にメインループとサブループとははどのようなものかを記載しておきます。これらの記述内の場合は上記方法で取得が出来ます。
メインループ
<?php
if( have_posts() ):
while( have_posts() ):
the_post();
?>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
サブループ
<?php
$args = array(
'post_type'=>'〇〇',
'posts_per_page'=>10,
);
$query = new WP_Query( $args );
if( $query->have_posts() ):
while( $query->have_posts() ):
$query->the_post();
?>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
WordPressのループ外で現在ページのURLを取得する方法
ネットで「WorPressで現在ページのURLを取得する方法」検索すると上記の the_permalink関数を使用するという情報が多くヒットします。しかしそれは先ほども書いたようにWordPressのループ内の場合。ヘッダーなどogp設定をする際などループ外の場合、この方法では取得できるページもありますがトップページなどは取得できません。
メインループ外の場合は以下の記述で現在ページのURLを取得できます。
<?php echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
その他にも部分的に取得することも可能です。
現在のページのパスを取得する方法
<?php echo $_SERVER["REQUEST_URI"]; ?>
現在のページのホスト名を取得する方法
<?php echo $_SERVER["HTTP_HOST"]; ?>
現在のページのホスト名+パスを取得する方法
<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>
現在のページのプロトコル+ホスト名を取得する方法
<?php echo (empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"]; >?>
なお、WordPressのループ外で現在ページのURLを取得する方法として紹介したこれらのプログラムはWordPressの独自関数ではなくPHPソースなのでWordPresssサイトで無い場合でも使用することが出来ます。