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カスタマイズ依頼

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

404ページがおかしくなっている
 
共有:
通知
すべてクリア

[解決済] 404ページがおかしくなっている

15 投稿
3 ユーザー
1 Reactions
298 表示
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

サイトURL: https://oawc.jp/

こちらのサイトで404ページがCocoonデフォルト設定から変えていないにも関わらず、いつの間にか「ご意見・体験談の紹介ページで記事がない」のようなページになるようになっていました。(添付画像参照)

404ページになるURL例: https://oawc.jp/page-not-found/

 

Cocoonデフォルトの404ページに戻したいのですが、どうしたらよいのか全くわかりません。

対処の仕方をご教示いただけますでしょうか。

 

----------------------------------------------
サイト名:女性専用車両に反対する会
サイトURL: https://oawc.jp
ホームURL: https://oawc.jp
コンテンツURL:/wp-content
インクルードURL:/wp-includes/
テンプレートURL:/wp-content/themes/cocoon-master
スタイルシートURL:/wp-content/themes/cocoon-child-master
親テーマスタイル:/wp-content/themes/cocoon-master/style.css
子テーマスタイル:/wp-content/themes/cocoon-child-master/style.css
スキン:/wp-content/themes/cocoon-master/skins/skin-ganchan12/style.css
WordPressバージョン:6.5.5
PHPバージョン:7.4.27
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 OPR/111.0.0.0
サーバーソフト:Apache
サーバープロトコル:HTTP/2.0
エンコーディング:gzip, deflate, br, zstd
言語:ja,en-US;q=0.9,en;q=0.8
----------------------------------------------
テーマ名:Cocoon
バージョン:2.7.4.3
カテゴリー数:8
タグ数:0
ユーザー数:8
----------------------------------------------
子テーマ名:Comargin-block-startcoon Child
バージョン:1.1.2
style.cssサイズ:21591 バイト
functions.phpサイズ:3681 バイト
----------------------------------------------
Gutenberg:1
Font Awesome:4
Auto Post Thumbnail:0
Retina:0
ホームイメージ:/wp-content/uploads/2021/11/hp-logo-nn-02-256x256-1.jpg
----------------------------------------------
ブラウザキャッシュ有効化:0
HTML縮小化:0
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:0
----------------------------------------------
利用中のプラグイン:
Access Category Password 1.2
AddToAny Share Buttons 1.8.10
Advanced Editor Tools 5.9.2
All In One WP Security 5.3.1
Broken Link Checker 2.2.4
Code Snippets 3.6.5.1
Contact Form 7 5.9.6
Contact Form 7 Multi-Step Forms 4.4
Contact Form CFDB7 1.2.7
Enable Media Replace 4.1.5
EWWW Image Optimizer 7.7.0
Honeypot for Contact Form 7 2.1.3
No Category Base (WPML) 1.3
PDF Embedder 4.8.2
Pretty Links 3.6.7
Quick Featured Images 13.7.1
Real-Time Find and Replace 4.0.3
Really Simple SSL 8.1.5
Redirection 5.4.2
Redirection for Contact Form 7 3.1.7
Search Regex 3.0.8
Shortcoder 6.3.2
Simple Custom CSS and JS 3.47
SlimStat Analytics 5.2.3
Throws SPAM Away 3.6.1
WP-PageNavi 2.94.1
WP Dashboard Notes 1.0.11
wpDiscuz 7.6.21
WP Multibyte Patch 2.9
WPS Hide Login 1.9.16.7
WPvivid Backup Plugin 0.9.103
Yoast Duplicate Post 4.5
----------------------------------------------


   
トピックタグ
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

画像を添付し忘れました。

失礼しました。


   
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 8089
 

原因は分かりません。

まずは、現在起きている事象を。

投稿者:: @tanakamakoto

404ページになるURL例: https://oawc.jp/page-not-found/

上記ページは、「404」にはなっていません。
「200」です。

 
表示されているのは、「introductions」というカテゴリーのアーカイブページです。
 
構造もまったく違います。

   
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 8089
 

ちなみに、私のテスト環境で、同様に「ドメイン/page-not-found/」というURLにアクセスしてみます。

すると、「404」になります。

 
 
原因は分かりませんが、まったく違うもの(カテゴリーアーカイブページ)が表示されているのだと思います。

   
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 8089
 

WordPressのトラブルシューティングの基本として

  • 親テーマに切り替える
  • 全プラグインの無効化

上記は試してみても良いと思います。

(親テーマに切り替えても解消しなければ、WordPress公式テーマ(名前が英語西暦年のもの)に変更も試してみる)

以下のプラグインを使えば、影響があるのはログインユーザーのみにすることができます。
(一般の読者には、影響がありません)

WordPressのトラブルシューティングを劇的に楽にする「Health Check & Troubleshooting」プラグインの使い方。
https://nelog.jp/health-check-and-troubleshooting-plugin


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3148
 

●確認

カテゴリー検索するフォームを独自で追加、JSを追加しており。
NOT FOUNDは、404ではなく、検索の結果のようです。


   
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 8089
 

ChatGPT先生のコメントです。
(GPT-3.5ですので、正確性は分かりませんけれど)


   
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

mk2様、chu-ya様、調査していただきありがとうございます。

 

確かにそのJSを各カテゴリーの記事検索時に動作するように組み込んでおります。

そのJSの記述通り『URLに「activities/?s=」「the-news/?s=」「introductions/?s=」のいずれかの文字列が含まれているなら』で発動し、検索ワードにヒットするカテゴリー内の記事をHITさせるようにしています。

 

もし、サイト内にURLが存在せず、404ページに飛ばしたいときに「introductions/?s=」の検索結果を表示しているなら、ChatGPTの言うように『想定していない動作』でございます。

 

しかしながらこのJSのの場合、『URLに「introductions/?s=」が含まれていたら』という条件にしているのに、なぜURLに「introductions/?s=」が含まれていなくても動作してしまうのでしょうか?

 

今回の場合、この想定していない動作を回避するためには「他の文字列検索メゾット(例えば「IndexOf」「search」「match」とか)に変えるべき」となるのでしょうか?


   
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

検索メゾッドを「includes」から「indexof」に変えてみましたが、別の検索結果のような画面になって解決しませんでした。

 

また、当該JSを無効化してみたところ、最初のスクリーンショット画像のような「ご意見・体験談の紹介ページの検索結果」になりました。

 

よって、まずは当該JSの予期しない動作でないと推察します。


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3148
 

今見て気付きましたが、includesの対象は配列です。
試しに配列以外に用いると、trueになるようです。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes


   
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

スニペットを有効→無効にしていったら原因が判明しました。

 

以下のスニペットが悪さしているようでした。

function myPreGetPosts( $query ) {
if ( is_admin() || ! $query->is_main_query() ){
            return;
        }
        if ( $query->is_archive() ) { //月別、年別、日別、時間別アーカイブの場合はis_date()
$query->set('cat', '2, 3, 4'); //IDを除外 複数はカンマで区切る マイナスでなければカテゴリ指定
            $query->set('posts_per_page', 30);
        }
}
add_action('pre_get_posts','myPreGetPosts');

 

これの修正をしていきますが、修正が手詰まったらまた相談させていただきます。

mk2様、chu-ya様、ヒントをくださり、ありがとうございます。

 

これからこれの修正に取り掛かり、解決したら本件クローズとさせていただきます。

この投稿は5か月前ずつTanakaMakotoに変更されました

   
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

chu-ya様、助言ありがとうございます。

 

>今見て気付きましたが、includesの対象は配列です。

 

こちらですが、当該JSを設定したのは結構前なので当時どのサイトを参考にしたのかまでは記憶にないですが、少なくとも以下のサイトでは「includes は文字列検索でも使える」というようなことが書いてあります。

https://www.sejuku.net/blog/70491#index_id2

これは間違っているということでしょうか?


   
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3148
 

投稿者:: @tanakamakoto

これは間違っているということでしょうか?

すみません、私のミスです
再確認し、文字列を比較した場合、文字列を含んでいるか否かで、true/falseが返却されました。

気になったのは、location.hrefの値です。
プラグイン「No Category Base (WPML) 1.3」を調べると、パーマリンクを変更するようなので。

↓どう言う流れで、404にならないのか?と思え。


   
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  
if ( $query->is_archive() )

の部分を

if ( $query->is_date() ) {

に変えたら(月別アーカイブで表示する記事のカテゴリーを制限したいので)直った感じです。

私の紹介サイトからコピペしてきたときの修正漏れしたケアレスミスっぽいです。


   
(@tanakamakoto)
Active Member Registered
結合: 5か月前
投稿: 8
トピックスターター  

いくつか動作テストをし、解決したことを確認しましたので、本件をクローズいたします。

 

皆様、各種助言をいただきましてありがとうございました。


   
共有:

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

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

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

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

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

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

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

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