WordPressで特定のカテゴリ文のスタイルを異なる方法で指定したい場合は、BodyクラスにカテゴリIDを追加してカテゴリ別にスタイルを指定できます。 この記事では WordPress Body クラスにカテゴリ ID を追加する方法について説明します。
WordPress Body クラスにカテゴリ ID を追加する方法
WordPressの body_class関数は、現在閲覧しているページの種類に関する情報を含むさまざまなクラスを追加するのに便利な機能です。 デフォルトでは、bodyタグにはポストの現在のカテゴリ(またはカテゴリ)のクラスは含まれていません。
次のコードを使用して、bodyクラスとpostクラスにカテゴリIDを追加できます。
// Add Category Id to WordPress Body and Post Class
function category_id_class($classes) {
global $post;
foreach((get_the_category($post->ID)) as $category)
$classes [] = 'cat-' . $category->cat_ID . '-id';
return $classes;
}
add_filter('post_class', 'category_id_class');
add_filter('body_class', 'category_id_class');
カテゴリ「nice」の名前をbodyクラスに追加したい場合は、次のコードを使用できます。
// Add Category Name to the body class
add_filter('body_class','add_category_to_single');
function add_category_to_single($classes) {
if (is_single() ) {
global $post;
foreach((get_the_category($post->ID)) as $category) {
// add category slug to the $classes array
$classes[] = $category->category_nicename;
}
}
// return the $classes array
return $classes;
}
非ラテン文字を使用する言語(韓国語など)では、カテゴリ名をbodyクラスに追加すると、カテゴリ名にハングルなどが含まれると壊れて見えるため、スタイル作業のためにbodyクラスにカテゴリ区分のための要素を追加したい場合、カテゴリ名前ではなくカテゴリIDを追加する方が便利です。
上記のコードを チャイルドテーマ(サブテーマ、子テーマ)内の関数ファイルに追加してください。 これにより、今後のテーマの更新時に修正/追加が初期化されずに維持されます。
ちなみに最近では一部のテーマやページビルダーはテーマファイルを直接修正する代わりに WordPress 管理者ページ(ダッシュボード)内でサイトのすべての要素をカスタマイズできるように進化しています。 例えば、 Avada テーマのレイアウト機能や エレメントページビルダーのテーマビルダーを使用すると、テーマファイルを変更することなく、特定のカテゴリのテンプレートまたは特定のカテゴリに属する投稿のシングルポストテンプレートを作成できます。
コメントを残す