サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2020年5月23日 15:44
サイト内検索した際に表示されるページに広告が表示されないのは、仕様ですか?
もし可能であれば表示させたいです。
2020年5月23日 17:38
広告とは、アドセンスのことでしょうか?であれば、仕様です。
というのも、↓ のように 1 件もヒットしない場合があるためです。
https://zunda-hack.com/?s=aaaaaaaaaa
このようなコンテンツのないページにアドセンスを表示するのは、アドセンスのポリシー違反です。
もし、どうしても表示されたい場合は、is_ads_visible() 関数などをカスタマイズします。
わいひら reacted
Topic starter
2020年5月23日 19:18
回答ありがとうございます。
そんな規約があるんですね。知りませんでした。ありがとうございます。
それでは検索結果がある場合には、広告を表示する。ない場合には広告は表示しないという形にしたいのですが、検索結果があるか無いかの関数って知ってたりしますかね?
Topic starter
2020年5月23日 20:29
調べてやってみたんですが、以下のコードでやっても検索結果があってもなくても広告が表示されてしまいます。
どうすればいいでしょうか?1つコメントアウトして、1行追加しました。
/Cocoon/lib/ad.php
return is_all_ads_visible() &&
//get_ad_code() && //広告コードが挿入されている
!$is_exclude_ids && //除外ページでない場合広告を表示
is_the_page_ads_visible() && //ページで除外していない場合
!is_attachment() && //添付ページではない場合
!is_404() && //404ページではない場合
//!is_search(); //検索結果ページで無い場合
!$wp_query->found_posts; //検索結果が0で無い場合(追加部分です。)
2020年5月23日 20:42
「WordPress 検索にヒットした数」で検索する方法とかで取得できるかと思います。
Topic starter
2020年5月23日 21:46
検索した結果「$wp_query->found_posts」で取得できるようなんですが、うまくいかないんですよねぇ
実装してみたコードは1つ上のに載せました。
2020年5月24日 01:31
$wp_query をお使いになるのなら、found_posts ではなく post_count がいいように思えます。
実際に試していないため上手くいくかは分かりませんが、このようなものをお試しになるとどうでしょうか。
まず、is_ads_visible() 関数の先頭で、$wp_query を呼び出します。
global $wp_query;
そして、検索結果の条件分岐を変更します。
//!is_search(); //検索結果ページで無い場合 // 検索結果ページで表示投稿数が10件より多い場合 (is_search() && 10 < $wp_query->post_count);
ちなみに、PHP のカスタマイズは、基本的にサポート外です。
わいひら reacted
2020年5月28日 09:23
回答ありがとうございます。
global $wp_query;を追加したところうまく動作するようになりました。
関数内で行なっているということで、globalが必要なんですかね?
$wp_query->post_countを知らなかったのですが、こちらが正しいですね。ありがとうございます。
!$wp_query->found_postsで実装しようとしたのは、検索結果が0の時にintegerの0で返してきていたので、そのままboolの0(false)として使えるかと思い実装しました。
2020年5月28日 09:26
コピペしたらソースコードとして載ってしまいました。すいません。
2020年5月28日 12:36
!$wp_query->found_postsで実装しようとしたのは、検索結果が0の時にintegerの0で返してきていたので、そのままboolの0(false)として使えるかと思い実装しました。
申し訳ありません。「!$wp_query->found_posts
は、「何も返してこない場合」という意味です。0 件ではない場合との意味ではありません。」と書きましたが、間違っています。!$wp_query->found_posts でもいけます。
ただ、ページにある程度のコンテンツがない場合は、アドセンスから警告が来るかもしれません。2 ページ目以降を考えると found_posts より post_count が使いやすいように思いました。
関数内で行なっているということで、globalが必要なんですかね?
$wp_query の未定義が理由の Notice が出ると思います。
わいひら reacted
2020年5月28日 20:48
コピペしたらソースコードとして載ってしまいました。すいません。
これについては修正しておきました。
Topic starter
2020年5月31日 14:56
わいひらさん修正ありがとうございます。
found_posts より post_count が使いやすいかつ最適であるという事がわかりました。
Akiraさん回答ありがとうございました!
わいひら reacted
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。