固定ページのスラッグからページタイトルとURLを取得する
固定ページのタイトルが変更になった場合には、そのページへリンクしているナビゲーションやサイトマップに反映しなくてはいけませんよね。
その部分をすべて自動出力していれば変更は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
Web制作を生業にしています。主にHTML, CSS, JavaScript, PHP, WordPressのカスタマイズなどしてます。忘れっぽいので備忘録としてWebの小ネタを書いたり、人生のいろんなことを不定期にのんびり更新しています。小学生男児の母(シングルマザー)です。