WPページスラッグの取得

Category : PHP, WordPress

表示する画像名にスラッグ名をつけた場合、
PHPでスラッグ名を取得して画像を表示できるので
それができるとソースがすっきりとして便利になります。

で、カテゴリーのスラッグは

<?php echo $cat->category_nicename; ?>
で、なんなく取得できたのですが、
ページのスラッグが
<?php echo get_page_uri($post->ID);?>
↑これだとなぜかうまくいきません。

で、調べてみました。
http://okwave.jp/qa/q4237376.html
原因はこの相談者と同じく、
ページに親子関係を設定しているせいでした。

うれしいことにこのページの解答者さんは
解決できる関数を載せてくれました!

で、これを実行したところ、バッチリと
画像が表示できました。

http://ja.forums.wordpress.org/topic/1652
フォーラムにも同じような質問がありました。
関数名はこっちの方が私には好みなので
こっちを採用。

function get_page_slug($page_id) {
$page = get_page($page_id);
return $page->post_name;
}

↑これをfunctions.phpにコピペして保存。

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

で取得できました☆