ページ作成時、ページスラッグのみを返したい

今作っているページは、ページごとにタイトル部分の画像を替えるもの。
これは、ページスラッグに半角英数を与えて(何もしないと、日本語タイトルをエンコードしたものになっちゃう)そのページスラッグと同じものを画像名にしたらよいのではと。

そのページスラッグを引っ張ってくる関数が以下。

get_page_uri($page_id)

なので、画像は下記のようなコードを書いて引っ張ることにしました。

<img src=”image/title_<?php echo get_page_uri($post->ID);?>.gif” alt=”<?php echo wp_title(”);?>” width=”540″ height=”70″ />

だがしかし。
これだと、親ページの場合はよしとして、子ページの場合に困ったことになります。

例えば、こんな階層の場合

parent
└child

画像ファイルは、上の例で言うと title_parent/child.gifになってしまいます。
そういう階層を作っちゃうのも一つの手だけど、面倒です。

なので、新しくfunctionを作りました。
functionは変わるとまずいので、テーマフォルダにfunction.phpを作成してそちらに追加。
使用しているテーマフォルダ下のfunction.phpは自動的に読み込んでくれるから、本体に余計なコードを書かなくてもすみます。

function get_page_uri2($page_id) {
ツꀀ$page = get_page($page_id);

ツꀀreturn $page->post_name;
}

htmlソースは以下のように

<img src=”image/title_<?php echo get_page_uri2($post->ID);?>.gif” alt=”<?php echo wp_title(”);?>” width=”540″ height=”70″ />


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です