広告

WordPressでページURL取得

この記事は約2分で読めます。

WordPressでページURLを取得するときは、下記のやり方が多いです。

<?php
$url = '';
if( is_singular() ) {
  setup_postdata($post);
  $url = get_permalink();
  wp_reset_postdata();
} elseif ( is_front_page() || is_home() ) {
  $url = home_url();
}
echo esc_attr( $url );

でも、たまにダメなときがあるので、下記を使うことが多いです。

function.phpで定数定義

<?php
// 定数定義
// 現在のURL
// 表示されているURL:定数名「PAGE_URL」.
if ( isset( $_SERVER ) ) {
  $server_sanitize = wp_unslash( $_SERVER );
  $domain_host     = isset( $server_sanitize['HTTP_HOST'] ) ? wp_unslash( $server_sanitize['HTTP_HOST'] ) : '';
  $domain_request  = isset( $server_sanitize['REQUEST_URI'] ) ? wp_unslash( $server_sanitize['REQUEST_URI'] ) : '';
  $domain_ssl      = isset( $server_sanitize['HTTPS'] ) && 'off' !== $server_sanitize['HTTPS'] ? 'https://' : 'http://';
}
define( 'PAGE_URL', $domain_ssl . $domain_host . $domain_request );

使うとき

<?php echo esc_url( PAGE_URL ); ?>

なんだかんだで、opgのurlを出すときなど、下記の方が便利です。

もしかしたら、https:// か http:// の判別でトラブルかもです。トラブったらすみません。