WordPressのURLを取得する方法を知っていますか?通常公開されているWebページなら簡単にURLを取得できますが、テーマ内ファイルのURLやテーマディレクトリのURLを取得する方法はあまり知られていません。
ここではWordPressの現在開いているURLを取得する方法、目的別にURLを取得する方法、その他WordPressのURLを表示する方法を解説します。
WordPressのさまざまなURLを取得する方法を知りたい方、WordPressをより使いこなしたい方はぜひご覧ください。
WordPress (ワードプレス)の現在開いているURLを取得する方法
WordPressの関数を使用する
WordPressの関数を使用して現在開いているURLを取得する場合は、phpファイルに下記のコードを追加してください。
<?php echo get_the_permalink();?>
この関数を使えば、パーマリンク通りのURLを出力してくれます。ただし独自のGetパラメータを付与させている場合は、下記のコードに変更する必要があります。
<?php echo (is_ssl() ? ‘https’ : ‘http’) . ‘://’ . $_SERVER[“HTTP_HOST”] . $_SERVER[“REQUEST_URI”];?>
独自関数を作る
独自関数を使う場合、まずは下記のコードをテーマの「functions.php」ファイルに追加してください。
<?php function get_current_link()
{
return (is_ssl() ? ‘https’ : ‘http’) . ‘://’ . $_SERVER[“HTTP_HOST”] . $_SERVER[“REQUEST_URI”];
}
?>
次にURLを取得したいページで下記のコードを記述します。
<?php echo get_current_link();?>
ただし独自のGetパラメータを使わない場合は、この関数は必要ありません。
独自のGetパラメータも一緒に取得したい場合
URLだけでなく、独自のGetパラメータも同時に取得したい場合は、まず下記のコードを「functions.php」ファイルに追加します。
<?php
function get_the_my_permalink($post = 0, $leavename = false)
{
$parse_url = parse_url(get_the_permalink($post, $leavename));
$url = “{$parse_url[‘scheme’]}://{$parse_url[‘host’]}/{$parse_url[‘path’]}”;
$query = isset($_GET) ? $_GET : array();
$parseQuery = isset($parse_url[‘query’]) ? $parse_url[‘query’] : array();
$queryString = http_build_query(array_replace($parseQuery, $query));
$url .= $queryString ? ‘?’ . $queryString : ”;
return $url;
}
?>
次にこの関数を呼び出して現在のURLを取得する場合は、下記のコードを記述します。
<?php echo get_the_my_permalink();?>
また記事を指定してURLを取得する場合は、下記のコードに記事IDを追加して記述します。
<?php echo get_the_my_permalink(記事ID);?>
パラメータを除いて現在表示のURLを取得する場合
現在表示のURLを、パラメータを除いて取得する場合は、下記のコードを記述します。
global $wp;
$current_url = add_query_arg( $wp->query_string, ”, home_url( $wp->request ) );
$current_url = strtok( $current_url, ‘?’ );
WordPress (ワードプレス)の目的別にURLを出力する関数
ここでは目的別にWordPressのURLを出力する関数を紹介します。
- 現在のページのURLを出力する関数
- テーマ内のファイルのURLを出力する関数
- テーマのディレクトリのURLを出力する関数
- ブログ・サイトのURLを出力する関数
現在のページの URLを出力する関数
get_pagenum_link
現在のページのURLを出力するには、下記のコードを記述します。
<?php $current_url = get_pagenum_link(get_query_var(‘paged’)); ?>
ただし静的なフロントページや個別ページのURLを出力するには、下記のコードに変更する必要があります。
<?php $current_url = get_pagenum_link(get_query_var(‘page’)); ?>
テーマ内ファイルのURLを出力する関数
テーマ内ファイルのURLを出力する関数には、目的に応じて複数の関数が存在します。
- get_theme_file_uri
- get_theme_file_path
- get_parent_theme_file_uri
- get_parent_theme_file_path
get_theme_file_uri
「get_theme_file_uri」は、現在有効なテーマフォルダのなかにあるファイルのURLを出力する関数です。下記のコードを記述して関数を呼び出します。
<?php
$uri = get_theme_file_uri();
echo $uri;
?>
get_theme_file_path
「get_theme_file_path」は、現在有効なテーマフォルダのなかにあるファイルの絶対パスを返す関数です。下記のコードを記述して関数を呼び出します。
<?php
$path = get_theme_file_path();
echo $path;
?>
get_parent_theme_file_ui
「get_parent_theme_file_uri」は、子テーマから親テーマのファイルURLを出力する関数です。下記のコードを記述して関数を呼び出します。ここでは画像ファイルの呼び出しを例にやってみましょう。
<img src=”<?php echo get_parent_theme_file_uri(‘/images/common/01.png’); ?>” alt=”…”>
get_parent_theme_file_path
「get_parent_theme_file_path」は、子テーマから親テーマファイルの絶対パスを出力する関数です。下記のコードを記述して関数を呼び出します。
<?php include( get_parent_theme_file_path(ファイル名)); ?>
テーマのディレクトリのURLを出力する関数
テーマのディレクトリのURLを出力する関数には、目的に応じて複数の関数があります。
- get_template_directory_uri
- get_template_directory
- get_stylesheet_directory_uri
- get_stylesheet_directory
- get_stylesheet_uri
- get_theme_root_uri
- get_theme_root
get_template_directory_uri
「get_template_directory_uri」は、有効化されている親テーマのディレクトリのURLを出力する関数です。出力したい情報に合わせて、下記のコードを記述します。ここでは画像の呼び出しを例にやってみましょう。
<img src=”<?php echo get_template_directory_uri(); ?>/images/01.jpg” alt=””>
get_template_directory
「get_template_directory」は、現在のテーマのディレクトリへの絶対サーバーパスを出力する関数です。例えば、phpファイルをインクルードする場合は下記のコードを記述します。
<?php include( get_template_directory() . ‘/includes/myfile.php’); ?>
ただし子テーマを使っている場合は、親テーマのディレクトリへの絶対パスが出力されます。子テーマのディレクトリへの絶対パスを出力したい場合は、「get_stylesheet_directory」関数を用いましょう。
get_stylesheet_directory_uri
「get_stylesheet_directory_uri」は、テーマのスタイルシートディレクトリのURLを出力する関数です。下記のコードを記述して関数を呼び出します。ここでは画像の呼び出しを例にやってみましょう。
<img src=”<?php echo get_stylesheet_directory_uri(); ?>/images/sample.png” alt=””>
get_stylesheet_directory
「get_stylesheet_directory」は、現在のテーマ、もしくは子テーマのスタイルシートディレクトリの絶対サーバーパスを出力する関数です。下記のコードを記述して関数を呼び出します。
ここではphpファイルのインクルードを例にやってみましょう。
<?php include( get_stylesheet_directory() . ‘/includes/myfile.php’); ?>
get_stylesheet_uri
「get_stylesheet_uri」は、現在のテーマの、スタイルシートのURIを返す関数です。どこにでも記述できることが特徴です。関数を呼び出すには、「get_stylesheet_uri」をファイル内の呼び出したい箇所に記述してください。
get_theme_root_uri
「get_theme_root_uri 」は、テーマのルートディレクトリURIを出力する関数です。関数を呼び出すには下記のコードを記述します。
<?php echo get_theme_root_uri(); ?>
get_theme_root
「get_theme_root」は、テーマディレクトリの絶対パスを返す関数です。関数を呼び出すには下記のコードを記述します。
<?php echo get_theme_root(); ?>
ブログ・サイトのURLを出力する関数
ブログ・サイトのURLを出力する関数には、目的に応じて複数の関数があります。
- home_url
- get_home_url
- site_url
- get_site_url
home_url
「home_url」は、現在のホームのURLを出力する関数です。関数を呼び出すには、下記のコードを記述します。
<a href=”<?php echo esc_url( home_url( ‘/’) ); ?>”>Home</a>
get_home_url
「get_home_url」は、指定したブログのホームのURLを出力する関数です。この関数は、マルチサイトの場合に役立ちます。
現在のブログのホームURLを出力する場合は、下記のコードを記述します。
<?php $blog_home = get_home_url(); ?>
2つ目以降のブログのホームURLを出力する場合は、ブログIDを追記します。
<?php $blog2_home = get_home_url( 2 ); ?>
site_url
「site_url」は、現在のブログのWordPressアドレスを出力する関数です。関数を呼び出すには下記のコードを記述します。
<?php
$url = site_url();
echo $url;
?>
get_site_url
「get_site_url」は、指定したブログのWordPressアドレスを出力する関数です。この関数はマルチサイトの場合に役立ちます。
現在のブログのサイトURLを出力するには、下記のコードを記述します。
<?php $url = get_site_url(); ?>
2つ目以降のブログのサイトURLを出力するには、ブログIDを追記します。
<?php $blog2_site = get_site_url( 2 ); ?>
現在開いているページのURLをWordPress (ワードプレス)ページ上に表示する方法
現在開いているページのURLをWordPressページ上に表示するには、phpファイルに下記のコードを記述します。
<?php echo(“http://” . $_SERVER[“HTTP_HOST”] . $_SERVER[“REQUEST_URI”]); ?>
WordPress (ワードプレス)のループ外で現在のURLを取得する方法
WordPressのループ外で現在のURLを取得するには、「the_permalink」関数を使います。関数を呼び出すには下記のコードを記述してください。
<a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a>
WordPress (ワードプレス)条件分岐タグを利用
条件分岐タグを用いて現在のURLを取得するには、下記のコードを記述します。
<?php if(is_front_page() ){ / / ? >
<?php echo home_url(); ?>
<?php }else is_single() { / /? >
<?php echo the_permalink();?>
<?php }esle{ / / ?>
<?php }?>
WordPress (ワードプレス)現在のURLまとめ
WordPressの現在のURLを取得するには、WordPressに搭載された関数やphpの独自関数を使って関数を呼び出すことが効果的です。目的に応じて使用する関数が異なるので、適切な関数を使ってください。
どの関数を使えば良いかわからない場合は、いくつかの種類を試してサイトに合った関数を選ぶと良いでしょう。