WordPressでスラッグ名を取得すると親>子ページ名になるのを回避する方法

せっかくCSSで設定してる画像が子ページに入れた途端表示されなくなった!
なんて経験は無いでしょうか?

WordPressでランディングページのテンプレートを作っている時にサービスごとに、
デザインを変えたいと思いますよね?そんなときWordpressのスラッグ名を使ってCSSを設定するんですが罠があります。

その解決方法と対策をご紹介します。

目次

スラッグ名を取得する

[php]
<?php echo get_page_uri($post->ID);?>
[/php]

この方法だとせっかくCSSで設定してる画像のに「画像が消えた!」ってなります。
理由は親ページ名/子ページ名になってしまうからです。

これを回避する方法を探しました。

ポイント

[php]<?php
$post = get_page($page_id);
echo $post->post_name;
?>[/php]

これで解決します。

[php]
<body id=”<?php $post = get_page($page_id); echo $post->post_name; ?>”>
[/php]

こんな感じでBodyにも使えます。

まとめ

親ページ>子ページにしてもこれなら簡単に取得できます。

ちなみにサービスごとにページテンプレートを増やしていく方法もありますが
ランディングページが多いとその分テンプレートの数も多くなってしまいます。

参考サイト

参考にさせていただいたサイトをご紹介します。
http://the-zombis.sakura.ne.jp/wp/?p=1337

目次