フリーランス|WEB 制作経験丸7年、制作会社様からのご依頼に丁寧・高クオリティでお手伝いいたします。 IRODORI DESIGN

B L O G

【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サイトで無い場合でも使用することが出来ます。