固定ページのタイトルが変更になった場合には、そのページへリンクしているナビゲーションやサイトマップに反映しなくてはいけませんよね。

その部分をすべて自動出力していれば変更はWPで固定ページの設定を更新してしまえば終了ですが、テンプレートに決め打ちで表示させている場合もあるので、その場合点在している修正箇所を探し出すところからスタートしなくてはなりません。それもちょっと手間なので、少しでも自動出力しておくと楽だなというので使用したソースです。
(もちろんこのほかにもやり方はたくさんあるとおもいますが、今回はこの方法をご紹介します。)

やりたいことはこれ↓

固定ページのスラッグからページタイトルとURLを取得したい!

固定ページのタイトルとURLを自動取得するように設定しておけば、ページタイトルに変更があっても自動でページタイトルを取得してくるので変更作業が楽になります。

以下の項目が前提条件です。

  • パーマリンクは編集できる設定になっている
  • ページスラッグに変更は無し(ページスラッグが変更になってしまったら下記のソースの「SLUG名」の部分を変更してやらないとダメです。)
  • スラッグには半角英数字を使用する
  • 固定ページ

(例)https://xxx_sample_xxx.jp/outline/ というURLの固定ページがあって(固定ページのスラッグ名が outline となっている)、そのページのタイトルとURLを取得したい場合はこちらのソースをテンプレートファイルに記述することでURLとページタイトルが取得できます。

<?php
$page_data = get_page_by_path('outline');
$page_id = $page_data->ID;
$page_title = apply_filters( 'the_title', $page_data->post_title );
echo '<a href="';
echo get_permalink( $page_id );
echo '" >'.$page_title.'</a>'; ?>

もうちょっと解説

ソース1行目に $page_data = get_page_by_path(‘outline’); とあります。
この ‘outline’ というところは固定ページのパスになります。
https://xxx_sample_xxx.jp/company/outline/の場合は以下のように書けます。

詳しくはCodexでご確認ください。

$page_data = get_page_by_path('company/outline'); 

Site Search

Profile

profile

Web制作を生業にしています。主にHTML, CSS, JavaScript, PHP, WordPressのカスタマイズなどしてます。忘れっぽいので備忘録としてWebの小ネタを書いたり、人生のいろんなことを不定期にのんびり更新しています。小学生男児の母(シングルマザー)です。