更新日2014/06/12 この記事は約 1 分で読めます。

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

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

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

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

スラッグ名を取得する

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

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

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

ポイント

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

これで解決します。

<body id="<?php $post = get_page($page_id); echo $post->post_name; ?>">

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

まとめ

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

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

参考サイト

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

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

※メールアドレスは公開されません。