下記コードでアーカイブで表示しているのですが、アコーディオンが閉じません。
月を非表示にしてアコーディオンを閉じるためにはどうすればよいでしょうか?
jQueryは参考サイトと同じものを実装しております。
※参考サイト
https://cosybench.com/customize-wp-archives-look/
※表示されているhtml
<div class="month-archive">
<h4 class="monthly-archive-title"></h4>
<ul class="archive-list"><li class="year current acv_open">2022<ul class="month-archive-list"><li><a href="http://www.gsdfgsdgs.cfbx.jp/2022/5">2022年5月</a>(6)</li><li><a href="http://www.gsdfgsdgs.cfbx.jp/2022/6">2022年6月</a>(4)</li></ul></li></ul> </div>
※PHPコード
<div class="month-archive">
<h4 class="monthly-archive-title"></h4>
<?php
/* 年月別アーカイブリストを取得する */
$sql = "
SELECT
YEAR (post.post_date) AS y,
MONTH (post.post_date) AS m,
count(*) AS c
FROM
wp_posts AS post
INNER JOIN wp_postmeta AS meta
ON post.id = meta.post_id
WHERE
meta.meta_key = 'single_rss_feed1'
AND post.post_type = 'post'
AND post.post_status = 'publish'
GROUP BY
y,
m
";
$query = $wpdb->prepare($sql);
$ym_items = $wpdb->get_results($query);
/* 年月別配列を作成 */
$ym_array = [];
foreach ($ym_items as $item) {
$ym_array[$item->y][$item->m] = $item->c;
}
$this_year = (string) idate('Y'); // 現在の年を、4桁の文字列で取得
$out = '<ul class="archive-list">';
foreach ($ym_array as $y => $y_items) {
if ($y === $this_year) { // 今年だったら
$out .= '<li class="year acv_open current">'.$y;
} else { // それ以外の年の場合
$out .= '<li class="year current acv_open">'.$y;
}
$out .= '<ul class="month-archive-list">';
foreach ($y_items as $m => $c) {
$url = home_url("{$y}/{$m}");
$out .= "<li><a href=\"{$url}\">{$y}年{$m}月</a>({$c})</li>";
}
$out .= '</ul>'; // 閉じる <ul class="month-archive-list">
}
$out .= '</li>'; // 閉じる <li class="year">
$out .= '</ul>'; // 閉じる <ul class="archive-list">
// HTMLの出力
echo $out;
?>
</div>
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No2です。
>原因が分かりました。~~
貴方にしかわからない情報になっています。
読む方にとっては、さっぱりわかりません。
>何が考えられますでしょうか?
直接の原因はNo2。
その他のありがちな原因は、No1に列挙してあります。
ひとつずつ確認すれば、解決するものと想像します。
No.2
- 回答日時:
No1です。
初期表示のご質問なら、多分これが原因。
>if ($y === $this_year) { // 今年だったら
>$out .= '<li class="year acv_open current">'.$y;
>} else { // それ以外の年の場合
>$out .= '<li class="year current acv_open">'.$y;
>}
原因が分かりました。
直読みすると初めは効かなかったのですが、wordpressの初期読み込みを無効にして、自分で読み込んだ後にarchive.phpのパス取得処理を変更したところ読み込めるようになりました。
get_stylesheet_directory_uri→get_template_directory_uri
パスはcssで通っていたのを参考に変更して、コードも一時簡易的なものに変更して検証いたしました。
同一ページ内のscript干渉も調査しましたが問題なさそうです。
原因となるコードは特定できたのですが、肝心の原因が分かりません。
何が考えられますでしょうか?
No.1
- 回答日時:
こんばんは
>アコーディオンが閉じません。
よくわかりませんけれど、まったく動作しないのか、あるいは初期表示だけ全部表示された状態になってしまうということでしょうか?
その状態で、年をクリックした場合に、開閉動作はしますか?
初期表示だけの問題であるなら、
・CSSが正しく読み込めていない
・HTMLの構成、クラスが正しく設定できていない
などが考えられます。
(:before、:after等を気にしなければ、初期表示の状態をスクリプトで設定することも可能です)
開閉動作が機能しないのであれば、
・jQuery(本体)を読み込んでいない
・スクリプトが正しく読み込めていない
・HTMLの構成、クラスが正しく設定できていない
などが考えられます。
まずは、出力されたHTMLがサンプルサイトと同様の構成になっているかを確認してみてください。
(特に、クラス名の設定に関して)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- その他(IT・Webサービス) html cssについて 3 2023/05/13 12:48
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPから他のcgiにpostしたいの...
-
ブックマークレットで他ドメイ...
-
laravelを利用してコントロール...
-
pythonのhttp.serverでpostされ...
-
HTMLで前の画面に戻る時、入力...
-
チェックボックスのvalueに変数...
-
フォームへの前回入力値をクリ...
-
<input type="hidden" >で配列...
-
パラメーターを隠す
-
PHPで画像の渡しが上手く行きま...
-
入力フォーム→確認画面→送信画...
-
フォームのテキストボックスに...
-
PHPでファイルアップロード時に...
-
<select>文、foreachと初期値設定
-
smartyでチェックボックスをチ...
-
PHPで郵便番号を検索し、住所を...
-
Smartyで、セレクトボックスが...
-
phpのカウンタのリセット方法
-
phpでのセレクトボックスの値を...
-
input nameで日本語を使うと
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
POSTを使わずに値を渡す方法
-
laravelを利用してコントロール...
-
サーバ上でGETはできるがPOSTが...
-
高高兴兴は高兴と何が違います...
-
ブックマークレットで他ドメイ...
-
同じ変数名で値がいくつかある...
-
$_SERVER['REQUEST_METHOD']と"...
-
SQLとPHPの連結方法がわからな...
-
pythonのhttp.serverでpostされ...
-
array中の表現
-
自作PHPブログでの記事を5件ず...
-
wordpressでのパーマリンクの表...
-
php foreach文
-
【smarty】予約変数に可変変数
-
海外郵便 宛名国名のスペル教えて
-
プログラムの複製(VB.net)
-
POSTの値を配列として受け取っ...
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
検索時の選択内容を保持する方法
おすすめ情報