WordPress で記事やカテゴリーページに設定できるスラッグをPHPで取得し、テーマやプラグイン・functions.phpで扱う方法を解説します。
目次から探す
スラッグを PHP で取得する方法
PHP でスラッグを取得するですが、
- 投稿のスラッグの取得方法
- カテゴリーページのスラッグの取得方法
- タグページのスラッグの取得方法
の3種類が存在します。
それぞれやり方が異なるので順番に見ていきましょう。
記事のスラッグを取得する方法
記事ページのスラッグを取得したい場合は、get_post関数で投稿情報を取得し、post_nameを参照します。
$post_id = get_the_ID();
$post = get_post($post_id);
$slug = $post->post_name;
特定の投稿のスラッグを取得したい場合は、IDを個別に指定するようにしてください。
カテゴリーページのスラッグを取得する方法
カテゴリーページの場合は、get_the_category関数で記事に設定されているカテゴリ情報を取得してcategory_nicenameを参照します。
$categories = get_the_category();
$slug = $categories[0]->category_nicename;
WordPressのカテゴリーは複数設定できる関係で、get_the_category関数は設定されているカテゴリー情報の配列が返されます。
設定されているすべてのカテゴリーを取得したい場合は、for文・foreach文などを使って取得してください。
$categories = get_the_category();
for($i = 0; $i < count($categories); $i++){
//カテゴリースラッグを使った何らかの処理
$slug = $categories[$i]->category_nicename;
}
foreach ($categories as $category ) {
//カテゴリースラッグを使った何らかの処理
$slug = $category->category_nicename;
}
投稿のスラッグ取得と同じ感覚で使うとエラーになるので注意しましょう。
タグページのスラッグを取得する方法
タグページのスラッグを取得したい場合は、get_the_tags関数で設定されているタグの一覧を取得し、slugを参照します。
$tags = get_the_tags();
if($posttags[0]) {
$slug = $tags[0]->slug;
}
タグはカテゴリーと違って一つも設定されていない場合があるため、タグが設定されているかどうかの判定処理を忘れないようにしてください。
全てのタグ情報を取得したい場合はfor文やforeach文を使うことでカンタンに取得できます。
$tags = get_the_tags();
for($i = 0; $i < count($tags); $i++){
//タグのスラッグを使った何らかの処理
$slug = $tags[0]->slug;
}
foreach ($tags as $tag ) {
//タグのスラッグを使った何らかの処理
$slug = $tag->slug;
}
スラッグの取得はテーマやプラグインを開発している人にとって非常に重要なデータのひとつです。
取得方法はとてもカンタンですが日にちが空くと忘れやすいので、忘れっぽい人はこのページはブックマークしておくといいでしょう。