WordPressで自作テーマで架空サイトを作っています。WordPressで作成したカテゴリーの中から一部のカテゴリーを取得してセレクタボックスで表示させています。その際現在表示中のカテゴリーページと同じカテゴリーペーシなら「selected属性」をつけているのですが、セレクタボックス内に無いカテゴリページの際にはallが表示されるようにallに「selected属性」をつけたいです。
実現したいこと
セレクタボックス内に無いカテゴリページの際にはallが表示されるようにallに「selected属性」をつけたいです。
発生している問題・エラーメッセージ
現在は画像のようにカテゴリーのすべてやニュースに行った際にセレクタボックス内のselected属性が2022についてしまいます。
該当のソースコード
PHP
<div class="news"> <ul class="news-categories"> <?php $args = array( 'include' => '1,8', 'title_li' => '' ); wp_list_categories( $args ); ?> </ul> <div class="news-year"> <p class="news-year-l">year:</p><!-- 1. onChangeでvalue属性に指定したURLに遷移する --><select name="select" onChange="location.href=value;"><option value="<?php echo get_permalink(get_page_by_path('news')->ID); ?>">all</option> <?php $args = array( 'exclude' => '1,8', // すべてとニュースのid 'order' => 'DESC', ); $categories = get_categories($args);// 2. foreach文でカテゴリーをすべて表示する foreach($categories as $category) { $categories = get_the_category($post->ID); $slug = $categories[0]->term_id;// 3. if文でカテゴリーページの場合 & 現在表示されているページと同じカテゴリーの場合「selected」属性を付与する if($slug == $category->term_id){ echo '<option value="'.get_category_link($category->term_id).'" selected>'.$category->name.'</option>'; }else{ echo '<option value="'.get_category_link($category->term_id).'">'.$category->name.'</option>'; } } ?></select> </div> </div>
試したこと
下記サイトを参考にf文でカテゴリーページの場合 & 現在表示されているページと同じカテゴリーの場合「selected」属性を付与するを実施しています。
参考サイト
画像参考
ワードプレス内のカテゴリー一覧

なかなか解決策が見つからず困っております。解決策や対象方をご存知の方がいましたら教えてください。
よろしくお願いします。

0 コメント