Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

共有:
通知
すべてクリア

[解決済] 関連記事に関する要望

13 投稿
2 ユーザー
10 Reactions
3,700 表示
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

記事下関連記事の部分を独自のプログラムに切り替えられるフックがほしいです。
今のところ、tmp/related-entriesやtmp/related-listあたりのファイルを子テーマで上書きなどする必要がありますが、できればtmp/related-entries下の内容と別のプログラムとをfunctionsで自由に切り替えられるようにしたいです。

https://notepad.pw/4f1pzize
(...の箇所で切り替え)


   
pono reacted
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

ちなみに、get_related_wp_query_argsにフックがあるのは理解しており、WP_Query単体ではない情報を切り替えで掲載しています。

get_related_wp_query_argsでempty($args)をtrueにすると、今度はelse下の内容が表示されるので、このあたりをうまく切り替えられるフックがあればと思っています。


   
pono reacted
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

少しトリッキーなカスタマイズで自己解決しました。
お騒がせしました。

関連記事を大きくカスタマイズする場合は上記のような切り替えポイントがあった方が便利かなとは思いましたが、需要がなさそうであれば却下していただいて構いません。


   
pono and わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

その部分をフィルターフックできるように書くと、テンプレートの記述が複雑になりそうなので、その部分の出力のフックは今回見送ろうと思います。
ただ、何かスマートな方法が思いついたらフックを追加出来ればと思います。


   
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

個人的には、

is_related_entries_visible()

get_related_entry_type()

の部分の判別が同じファイル内で行われるよりは、

https://notepad.pw/985hofz1

の部分までをrelated-list側に含め、get_related_entry_type関数の返り値をtrue/falseにし、この関数内で判別をフック化したらどうなるだろうとは考えました。

get_template_part関数には読み込むファイル内容前に出力内容を加えるアクションフックがあるので。


   
pono reacted
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

そうするとrelated-entries・related-listのファイルごとに出力のオンオフを切り替えられるポイントができますが、他の問題があるかもしれません。


   
pono reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

オン・オフの切り替えだけならフックを追加しても、そこまでややこしくならないので大丈夫かと思います。
こんな感じとかでも。

    if ((get_related_entry_type() != DATA_AD_FORMAT_AUTORELAXED || is_amp()) && apply_filters('cocoon_template_part_related_list', true)) {
get_template_part('tmp/related-list');
} else {//関連コンテンツユニットの場合

このフックを無効にして、以下のように書くということでもよいでしょうか。

add_action('get_template_part_tmp/related-list', function () {
get_template_part('子テーマに置いてあるテンプレートのパス');
});

※動作確認はしてないです


   
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

上記の

if ((get_related_entry_type() != DATA_AD_FORMAT_AUTORELAXED || is_amp()) && apply_filters('cocoon_template_part_related_list', true)) {
get_template_part('tmp/related-list');
} else {//関連コンテンツユニットの場合

でtrue/falseを制御すると、falseのときに

get_template_part('tmp/related-list');

が読み込まれないと思うのですが、先ほどの返信にあるように

https://notepad.pw/985hofz1

の部分をrelated-listファイル側に含めるというのはどうでしょうか?

 

add_actionについてはその通りで、related-listを読み込んだ際にはコンテンツが追加できるわけですが、そうなると現在related-listによってデフォルトで表示する内容の選択肢が

  1. WP_Query単体で生成されるリスト
  2. 「関連記事は見つかりませんでした。」

の2パターンしかないように思うので、ここに『3.非表示』の選択肢ができる制御ポイントを加えたうえでadd_actionを使うのが、最小限の修正でできることなのかなと。

 

なので、上記の例でいくとrelated-listファイルのコードを

https://notepad.pw/6p7e145

に変更し、条件分岐の部分をrelated-entriesから移すことで、フックのみでの関連記事内プログラムのカスタマイズの幅が広がると思います。


   
pono reacted
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

条件分岐部分を移す必要はなく、related-entriesにフックのみの条件

例: https://notepad.pw/fqz1zxoh

を追加するだけで大丈夫でした。


   
pono reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

確かに、そっちで書いた方がスマートですね。
そのようにフックを追加したものをアップしておきました。
------------------------------------------------
https://github.com/yhira/cocoon
最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。

FTPでのアップデート方法はこちら。
https://wp-cocoon.com/ftp-update/
------------------------------------------------


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

一応、検索から同様のカスタマイズをしようと訪れた方向けに、関連記事テンプレートをカスタマイズする簡単なサンプルコードも載せておきます。

//関連記事を非表示にする
add_filter('cocoon_template_part_related_list', '__return_false');

//子テーマにおいてある独自カスタマイズの関連記事テンプレートを呼び出す
add_action('get_template_part_tmp/related-list', function () {
  get_template_part('子テーマに置いてあるテンプレートのパス');
}); 

   
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

確認しました。
フックの追加ありがとうございます。


わいひら様が提示されているサンプルコードに、私のカスタマイズ例を補足しておくと、

条件を満たすカテゴリーに属する記事ではWP_Query単体では実現できない関連記事コンテンツを表示し、条件を満たさないカテゴリーに属する記事では通常のWP_Query単体で生成される関連記事リストを表示する。

といった形です。


なお、WP_Query単体で実現できるカスタマイズであれば、get_related_wp_query_args関数に用意されているフィルターフック「get_related_wp_query_args」で可能です。


   
pono and わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ご確認と、補足ありがとうございます!


   
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました