wordpressでのスマホ対応webサイト制作・wpプラグイン・PHPプログラム・SNS活用・ 動画・bgmやテーマ曲アレンジまで考えるコラム!

WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも

      2020/09/27

こんにちは、管理人@SS_mshpです。

今回は、前回の『別ディレクトリにWP記事を出す』の続きで、新しいディレクトリに転送するようにしてみます。

使うのは『header』『get_the_ID』。実際の利用例、似ている『the_ID』との違いも見ながら、効果を確認していきましょう。

今回行いたい内容~WPインストールディレクトリでは、意図したCSSが出ないので、表示用ディレクトリに転送したい


前回まで行っていた『別ディレクトリのコーポレートサイト記事をWPで一括管理』の続きです。とりあえず『WPインストールディレクトリ上では記事が準備』『表示ディレクトリのほうも準備ok』となりました。しかし、これをWPインストールディレクトリ上で表示されるとまずいのです。


WPはこのサイト(よんどけコラム)にインストールしてあるんですが、別ディレクトリ表示用の記事が、万が一(カノニカルURLなどは指定したが)こちらのディレクトリに表示した場合、CSSなどが読み込まれず、意図した表示になりません。トップページ用なんですけど、まったくトップページって感じがしません。


トップに使おうとしていた画像についても、border-radiusで丸くなるはずだったんですが、ボックスがそのまま出るので、非常にダサくなります。

そのため『ドメイン/music-creation/archives/wp-web/wp-web-top/(トップページの場合・パーマリンク設定によって異なります)』でアクセスされた場合、表示用ディレクトリの『ドメイン/wp-web/』というURLに転送するという対応をしてみます。

ID数値取得get_the_ID()と、PHP・header('Location: 〇〇/')で、転送を行う


まずは、転送前・転送後のURL一覧・記事idの一覧を作っておくとラクです。作ったあとは、WPの使用中テーマ・ヘッダー部分に、こんな感じで。
WP組み込みファンクションの『get_the_ID』で、変数$post_idに記事idを格納。あとはif条件分岐を使って、例えば『トップページ用が7261番なので、表示用の/wp-web/にheader('Location: 〇〇/')で転送』という形にしました。

=が3つ(===)となっているのは、『数値判定されなかった』というのが以前あったためです(===は文字列型・数値型などの判定もする)。そのほか、処理ストップ用の exit;も一応いれておきます。


転送のおかげで『ドメイン/music-creation/archives/wp-web/wp-web-top/』に入った場合でも、新しくつくったディレクトリのほうへ転送。


こっちのほうですと、意図したとおりにCSSが効きました。

WP組み込みファンクション『the_ID』だとどうなる?


WordPressにはID数値取得のget_the_IDによく似た『the_ID』というものもあります。ついでにですが、こちらも試してみましょうか。厳密には挙動がことなります。こちらは『記事IDの出力用』です。例えば同じように『変数に格納して判定』しようとしても・・


『数値IDの取得』ではなく、『ID出力』なので、この記事に割り当てられている記事ID(ココでは7261番)が単純に出ます。記事メタデータとして表示する場合は、こちらを使います。

あとがき・まとめ

  • 表示用じゃないディレクトリでアクセスされた場合、意図したレイアウトで表示されないので、表示用ディレクトリに転送
  • 『get_the_ID』でIDを取り、if条件分岐でIDごとにPHP『header('Location: 〇〇/')』で転送先を指定して対応できた
  • 『the_ID』だと、単純にIDを表示

まとめるとこんな形でした。PHP転送や、WPのID関連組み込みファンクションについて押さえていただけたと思います。
これ以外にも『IDを指定して条件分岐』などにも使えると思います。ただし公開後で、検索エンジン評価などを引き継ぎたいときは、htaccessで301リダイレクトなどがおすすめです。

参考リンク

(今回の参考リンクです。PHP公式サイトやWordPress codex日本語版。)

*アトリエSS・web制作サービスページに移動します。webリニューアル・ロゴ・記事・wordpress化などでお力添えできます。

【カテゴリ】 - PHP・データベースetc
【タグ】 - ,

  関連記事

【WordPress条件分岐】is_singleとis_singularって違うの?→idやスラッグ指定、投稿タイプ指定の面で違いが

今回は、WPの条件分岐などに使うファンクションで、名前が超似てい ...

【WordPressカスタムフィールド検索】meta_queryで、シリアライズ値が入ったフィールドを持つ記事をヒットさせるには?

今回は、ちょっと需要があるかもしれない『WordPressカスタ ...

【WordPress組み込み関数】is_home()とis_front_page()って同じ?→似てますが、厳密には挙動が異なります

今回は、WordPressで条件分岐するときによく使われる組み込 ...

【WordPressユーザー名バレ対策】ユーザー名表示からPHP・preg_matchでリダイレクト(wp-json/wp/v2/usersなど)

今回は、WPログインなどにも使われる情報『ユーザー名』が表示され ...

【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意

今回は、管理人が学習サイトなどでコードを調べていて、4回くらい遭 ...

【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム

今回は、最近何件か対応した、お客さん提供用の自社開発WPテーマに ...

PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)

今回はPHP関数を使って、表示の調整をしてみたいと思います タイ ...