質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

1002閲覧

WordPressのカスタムタクソノミーをアコーディオン表示にしたい

jackie1993427

総合スコア66

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/12/28 18:22

前提・実現したいこと

WordPressにて、カスタムタクソノミーの一覧ページを作成しております。
親カテゴリ、子カテゴリ、その下の3階層までありますが、普通に一覧表示にしても見にくいので改善したく質問させていただきました。

発生している問題・エラーメッセージ

現状、一覧は固定ページに表示しており、
テンプレートを「カテゴリ一覧」として作成しております。内容は下記の通りです。
下記の場合、一覧として表示されているだけで、アコーディオンのようにはなりません(当然)

PHP

1<?php 2/* 3Template Name: カテゴリ一覧 4*/ 5get_header(); ?> 6<?php if( function_exists( 'aioseo_breadcrumbs' ) ) aioseo_breadcrumbs(); ?> 7<main> 8 9 10<?php 11 $my_tax = 'products_category'; 12 $terms = get_terms( $my_tax, array('hide_empty' => false) ); 13 echo walk_category_tree( $terms, 0 , array( 14 'style' => 'list', 15 )); 16?> 17 18 19<style> 20 .children{ 21 text-decoration:none; 22 list-style:none; 23 } 24 </style> 25 26</main> 27 28<?php get_footer(); ?>

試したこと

改善案として、Google先生に頼ってjQueryで処理するのがいいそうですが、
当方jQueryの知識がなく、苦戦しております。
試したのは以下のパターンです。

jQuery

1<script> 2 $(function () { 3 // 親メニュー処理 4 $('span').click(function() { 5 // メニュー表示/非表示 6 $(this).next('ul').slideToggle('fast'); 7 }); 8 9 // 子メニュー処理 10 $('li').click(function(e) { 11 // メニュー表示/非表示 12 $(this).children('ul').slideToggle('fast'); 13 e.stopPropagation(); 14 }); 15}); 16 </script>

これですと、親カテゴリの部分にspanを割り当てないといけないので
処理がうまくいかず、何も変化がありませんでした。

jQueryを使用せず、CSSでと思いましたが、
CSSで実装する場合もclassの付与などが必要なため、walk_category_tree()では
うまく動作させられないかと思います。

詳しい方、解決方法やアドバイスなどご教示いただけますと幸いです。
不躾で分かりずらい質問かと思いますが、
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuki84web

2022/01/01 02:38

”アコーディオン”とありますが、具体的にどんなHTMLを生成したいのでしょうか。 walk_category_tree関数に頼らずget_termsの返り値から自分でHTMLを生成した方が面倒ですが柔軟性はあると思います。
jackie1993427

2022/01/01 06:00

ご回答ありがとうございます。 具体的にはこんな感じのイメージで作りたいと思っています。 https://lmn-blog.com/css_accordion01/ get_termsでの生成も視野に入れてよく調べてみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問