概要
WordPressにて、スラッグ名が分かっている時にそれに対応するURLを取得する方法です。
ループ外でも使用できます。
WordPress3.3.2にて動作確認済み。
カテゴリースラッグからカテゴリー表示のURLを取得
//カテゴリースラッグからカテゴリーを取得
$cat = get_category_by_slug('slugname');
//カテゴリーIDからURL文字列を取得
echo get_category_link( $cat->cat_ID );
固定ページスラッグから固定ページのURLを取得
//固定ページのスラッグからページを取得
$page = get_page_by_path('slugname');
//ページIDからURLを取得
echo get_permalink( $page->ID );
普通の投稿記事のスラッグから投稿1件表示のURLを取得
投稿のIDを取得するのに少しコツが要ります。
//投稿スラッグ(固定ページは除く) から 投稿idを取得。
function get_post_id_by_slug($post_slug){
$args=array(
'name' => $post_slug,
'post_type' => 'post',
'post_status' => 'publish',
'numberposts' => 1
);
$found_posts = get_posts($args);
if( $found_posts ) {
return $found_posts[0]->ID;
}else{
return NULL;
}
}
//投稿スラッグからidを取得
$id = get_post_id_by_slug( 'slugname' );
//idからURLを取得
echo get_permalink( $id );
「WordPress:スラッグからURL(URI)を取得する方法」への1件のフィードバック