wordpress WordPressの親子関係のある固定ページの親ページで子ページが奇数の場合の属性付与 作成日: 2025年7月17日
スマホなら縦一列だから問題ないが、PCなどワイドのあるデバイスでの表示でrow並びにした場合の端数=この場合は2列として、奇数の場合のカラム落ちを無くすために50%ワイド2列に対し先頭を100%ワイドにしたいって場合。
最後を100%にするならCSSのみでできるが、先頭の場合奇数で先頭の指定ができないので、ループで数えて属性付与で対処。
改修などで偶数ものが増えてカラムどうするか?ってのは間々ある。
<?php
global $post;
// 現在の投稿(ページ)の子ページを取得
$child_pages = get_pages(array(
'child_of' => $post->ID,
'parent' => $post->ID, // 親ページが現在のページであるものに限定
'post_type' => 'page',
'post_status' => 'publish'
));
// 取得した子ページの数をカウント
$child_count = count($child_pages);
// クラス修飾子を初期化
$section_class_modifier = '';
// 子ページの数が奇数であるかを判定し、奇数の場合にのみクラス修飾子を設定
if ( $child_count % 2 !== 0 ) {
$section_class_modifier = ' odd'; // 半角スペースを含めて設定
}
?>
<?php echo esc_attr($section_class_modifier); ?>
仕組みは子ページ数えて2で割って結果0なら何もしないが0以外なら奇数だからoddってクラスを付ける。
後はclass=”odd”のfirst-of-typeは100%ワイドって指定すればOK。