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:// の判別でトラブルかもです。トラブったらすみません。