サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
トピックスターター 2023年8月22日 16:20
はじめまして。PHPについて理解が足りずご助言を頂きたく登録しました。
Cocoonの設定画面でインデックスでフロントページのタイプをタブにすると、新着記事+任意のカテゴリ3つまでをタブ切り替えで表示できるようになると思います。
デフォルトだと【新着記事+任意カテゴリ1+任意カテゴリ2+任意カテゴリ3】という並び方になると思います。
これを【任意カテゴリ1+任意カテゴリ2+任意カテゴリ3+新着記事】という並びに変えようと思い、PHPファイルを編集しました。編集したのは、list-tab-index.phpファイルです。途中で<div class="index-tab-buttons">という括りが出てくると思いますが、この中に<label>タグが2つ出てきており、このlabelの並びを前後逆にしたところ、【任意カテゴリ1+任意カテゴリ2+任意カテゴリ3+新着記事】という並び順にすることができました。実際に書き換えたコードは以下となります。
<div class="index-tab-buttons"> <?php for ($i=0; $i < count($cat_ids) && $i < $cat_count; $i++): $number = $i + 2; $cat_id = $cat_ids[$i]; ?> <?php if (is_category_exist($cat_id)): ?> <label class="index-tab-button" for="index-tab-<?php echo $number; ?>"><?php echo get_category_name_by_id($cat_id);//echo $cat_ids[$i]; ?></label> <?php endif; ?> <?php endfor; ?> <label class="index-tab-button" for="index-tab-1"><?php echo apply_filters('new_entries_caption', __( '新着記事', THEME_NAME )); ?></label> </div>
問題はここからで、ページを開いた時にフォーカスされるのは”新着記事”となっておりまして、これを”任意カテゴリ1”にフォーカスをあてるにはどうしたらよいでしょうか。
apply_filters('new_entries_caption'がフォーカスを当てているのかなと思ったのですが、ここから先どうすべきか分からず手詰まりになってしまったので質問をさせて頂きました。
よろしくお願いいたします
2023年8月22日 17:06
自己責任で願います。
●テンプレートを修正する
checkedが付いているタブがフォーカスとなります。
その部分が漏れています。
以下の部分を書き替えます。
// 1番目のタブのcheckedを削除 <input id="index-tab-1" type="radio" name="tab_item"> <?php for ($i=0; $i < count($cat_ids) && $i < $cat_count; $i++): // 2番目のタブにcheckedを付加 $number = $i + 2; $chk = null; if ($number == 2) { $chk = 'checked'; } ?> <input id="index-tab-<?php echo $number; ?>" type="radio" name="tab_item" <?php echo $chk; ?>> <?php endfor; ?> <div class="index-tab-buttons"> <?php for ($i=0; $i < count($cat_ids) && $i < $cat_count; $i++): $number = $i + 2; $cat_id = $cat_ids[$i]; ?> <?php if (is_category_exist($cat_id)): ?> <label class="index-tab-button" for="index-tab-<?php echo $number; ?>"><?php echo get_category_name_by_id($cat_id);//echo $cat_ids[$i]; ?></label> <?php endif; ?> <?php endfor; ?> // 新着記事タブを最後に変更 <label class="index-tab-button" for="index-tab-1"><?php echo apply_filters('new_entries_caption', __( '新着記事', THEME_NAME )); ?></label> </div>
●テンプレートを修正しない
私ならテンプレートを変更しません。
CSSでタブの並びを変更し、JSで2番目のタブを活性表示させます。
JavaScript
// 2番目のタブを初期表示 $(function() { $("#index-tab-2").prop('checked', true); });
CSS
.index-tab-buttons { display: flex; } // タブの並び、新着記事タブを最後に変更 label.index-tab-button[for=index-tab-1] { order: 1; }
トピックスターター 2023年8月22日 20:15
@chu-ya さん
ご助言ありがとうございます。私もできればテンプレートは編集したくないので、テンプレートを修正しない方法でいきたいと思いました。
JavaScriptはfunction.phpに追記、CSSはstyle.cssに追記という認識で良かったでしょうか。
トピックスターター 2023年8月22日 20:29
list-tab-index.phpの中に<script>タグを追記してJavaScriptを埋め込み、CSSは外観からカスタマイズ→追加CSSでしょうか…。仕組みが良く分かっておらず、どこに追記すれば良いのか分かりません。もうちょっと調べてみます。。
トピックスターター 2023年8月23日 08:34
@mk2_mk2 さん
ありがとうございます。私のやり方が下手なのか、うまく反映されませんでした。
【新着記事+任意カテゴリ1+任意カテゴリ2+任意カテゴリ3】の並びのままですが、フォーカスだけ任意カテゴリ1にあたるようになりました。。
cocoon-child-master直下のjavascript.jsとstyle.cssを編集→×
cocoon-child-master/skins/skin-template配下のjavascript.jsとstyle.cssを編集→×
どちらも並びだけ変わりません。もっと勉強します…。
2023年8月23日 10:02
2023年8月23日 15:42
774-sanさん
コード自体に間違いはないかと思います。
私の環境で確認してみました。
①カスタマイズがない状態
②JavaScriptのみ反映
③JavaScript+CSS反映
そして、子テーマの各ファイルに反映することもお伝えしました。
現状ご提示いただいた情報で言えることは、ここまでかと思います。
あとは、実際の環境に間違いなく反映できているかどうか。
それを確認するには、環境情報等をご提示いただくしかなさそうに思います。
そうでなければ、こちらからは確認のしようがありません。
※本来、このフォーラムでは、上部の案内の通りの情報をご提示いただくルールとなっております。
但し、外部からの確認には限りがあります。
ご提示いただいても、必ずしも原因が分かるとは限りません。
ご提示いただいても、必ずしも原因が分かるとは限りません。
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。