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

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

カテゴリー・タグのインデックス設定に関...
 
共有:
通知
すべてクリア

[解決済] カテゴリー・タグのインデックス設定に関する不具合

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

個別のカテゴリー・タグでインデックスを設定する項目

がありますが、同じフック'edited_term'

で設定値保存時の存在有無を判定していないため、タクソノミー問わずすべてのタームに2種類の設定値

  1. 'the_category_noindex'
  2. 'the_tag_noindex'

が保存されます。

 

カテゴリーIDに対応する'the_category_noindex'から、タグIDに対応する'the_tag_noindex'から取得するという場合は困りませんが、キー名から一括で扱う場合(例えば関数get_noindex_category_ids・get_noindex_tag_ids)などでは不具合が生じます。


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

ご連絡ありがとうございます。
不具合に気づいてませんでした。
値の存在確認を追加しました。
https://github.com/yhira/cocoon/commit/6517b9a2dd95f5aef45b94decdabfc5db440fb94


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

https://github.com/yhira/cocoon/commit/6517b9a2dd95f5aef45b94decdabfc5db440fb94

こちらの不具合修正では不十分なので、改めて問題点を整理します。

 

まず、現時点で作成されているカテゴリー・タグのタームメタデータには、

  1. 'the_category_noindex'
  2. 'the_tag_noindex'

の両方存在してしまっている点がひとつの不具合原因となっています。

よって、二重に存在するメタデータを統一する、または一括取得後に'the_category_noindex'のうちカテゴリーに紐づいている設定値のみ&'the_tag_noindex'のうちタグに紐づいている設定値のみで選別するなど、必要十分な状態になるよう修正しないといけません。

 

続いて、設定値の保存・更新における不具合を修正する必要がありますが、インデックス設定はチェックボックスなので、今の仕様のまま単純に保存データのキーだけでは設定の存在を判定することができません。

動作的には、チェックボックスからチェックを外す場合は保存されず、チェックが入ったまま変更できなくなります。

 

この不具合を修正した上で、二重に存在するメタデータを統一する場合には、メタデータの保存先等も調整する必要が出てくるかもしれません。


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

続いて、設定値の保存・更新における不具合を修正する必要がありますが、インデックス設定はチェックボックスなので、今の仕様のまま単純に保存データのキーだけでは設定の存在を判定することができません。

そうでした。チェックされない場合保存されないので現在の仕様にしたんでした;失礼しました。
なので、カテゴリー画面ではカテゴリーの設定、タグ画面ではタグの設定のみ保存されるように修正してみました。
https://github.com/yhira/cocoon/commit/3eb3cdc80650fc53b7a8b599657e86e1fbe113b4


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

よって、二重に存在するメタデータを統一する、または一括取得後に'the_category_noindex'のうちカテゴリーに紐づいている設定値のみ&'the_tag_noindex'のうちタグに紐づいている設定値のみで選別するなど、必要十分な状態になるよう修正しないといけません。

これについては、the_category_noindexが1になるデータを引っ張り出してきて、

SELECT * FROM wp_termmeta
WHERE (meta_key = 'the_category_noindex') AND (meta_value = 1)

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

最終的には、以下のような値を取得しているんですけど、これはカテゴリーに紐づいている設定値にはなりませんでしょうか。

SELECT DISTINCT GROUP_CONCAT(term_id) AS ids FROM wp_termmeta 
WHERE (meta_key = 'the_category_noindex') AND (meta_value = 1)
 

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

カテゴリー画面ではカテゴリーの設定、タグ画面ではタグの設定のみ保存されるように修正してみました。

確認しました。

修正ありがとうございます。

 

 

最終的には、以下のような値を取得しているんですけど、これはカテゴリーに紐づいている設定値にはなりませんでしょうか。

wp_termmetaのデータテーブルは、全てのタクソノミー下にあるタームで共用している点を考慮する必要があります。

例えば、添付画像のようにカテゴリー・タグ作成画面にも案内がありますが、カテゴリーやタグを整理するためにカテゴリー⇔タグを変換したり、新たなタクソノミーでより細かい分類に仕分けする場合などがあります。

 

『Cocoon』というカテゴリーで「インデックスしない」にチェックを入れていたとすると、データベース上では'the_category_noindex'=1です。

そのまま『Cocoon』をタグに変換した後、新たに'the_tag_noindex'でインデックスさせる設定なら、データベース上では

  • 'the_category_noindex'=1
  • 'the_tag_noindex'=0

となります。

「タグである『Cocoon』のタームIDに対して、'the_tag_noindex'の設定値を取得する。」という場合には問題ありませんが、おっしゃっている現在の方法で一括データを取得しようとすると、'the_category_noindex'と'the_tag_noindex'の両方が対象となります。

そして、現在のタグとしての'the_tag_noindex'=0は該当しないものの、'the_category_noindex'=1が該当し、カテゴリーとして処理されてしまいます。

 

この例のような問題から、

二重に存在するメタデータを統一する、または一括取得後に'the_category_noindex'のうちカテゴリーに紐づいている設定値のみ&'the_tag_noindex'のうちタグに紐づいている設定値のみで選別するなど

の修正方法を挙げた次第です。

 


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

お恥ずかしながら、この機能については、今初めて知りました。
元々不具合があったのが問題なんですが、こういった変換については全く想定していませんでした。

例えば「Cocoon」というカテゴリを作成して、noindexを有効にするとデータベース上では以下のようにデータが保存されます。


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

その後、「Cocoon」というカテゴリを「変換」機能を用いてタグに変更した場合、以下のように値が保存されてしまい、その状態でget_noindex_category_idsをした場合、the_category_noindexの値を引っ張ってきて問題ということだったんですね。


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

get_noindex_category_ids、get_noindex_tag_idsを使用しているのは、検索してみると以下のようなサイトマップ出力処理の部分だけで
https://github.com/yhira/cocoon/blob/b3bfa849aa647ba4aee39649d91c2edfdda0e22c/functions.php#L284
以下のようなWordPressデフォルトのサイトマップを表示して動作確認しようとしたところ、404ページになってしまいます(他のテーマにしても同じでした)。
https://wp-cocoon.com/wp-sitemap.xml
なにか仕様変更があったんでしょうか。

それとは別に、関数で値を取得した後に、以下のようにカテゴリーならカテゴリーに紐ついてるものだけに選別する処理を後で加えようと思います。

よって、二重に存在するメタデータを統一する、または一括取得後に'the_category_noindex'のうちカテゴリーに紐づいている設定値のみ&'the_tag_noindex'のうちタグに紐づいている設定値のみで選別するなど、必要十分な状態になるよう修正しないといけません。


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

以下のようなWordPressデフォルトのサイトマップを表示して動作確認しようとしたところ、404ページになってしまいます(他のテーマにしても同じでした)。
https://wp-cocoon.com/wp-sitemap.xml
なにか仕様変更があったんでしょうか。

https://wp-cocoon.com/sitemap.xml

「Google XML Sitemaps」プラグインを使用されていると思いますが、このプラグインではWordPressコアのサイトマップを無効化するようになっています。

add_filter('wp_sitemaps_enabled', '__return_true', 11);

リライトルールによっては404エラーのままかもしれませんが、一応子テーマ等でフックから有効化することはできます。


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

ありがとうございます。
確かに。当サイトに関しては、それが原因だと思います ? 
ただ、プラグインを何もインストールしていないローカル環境でも、同様の症状が出たのでWordPressの問題と勘違いしてしまいました。
おそらく、僕のローカル環境側の何かしらの問題だと思います。
試しに、WEB上にまっさらなサイトを作成して、/sitemap.xmlを表示させたら問題なく表示されました。

カテゴリーとタグについては、選別処理を追加してみました。
https://github.com/yhira/cocoon/commit/db59550c3c2175d31bb5bd0136e984ec58a9fccc


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

確認しました。

修正ありがとうございます。

 

ただ、プラグインを何もインストールしていないローカル環境でも、同様の症状が出たのでWordPressの問題と勘違いしてしまいました。

おそらくですが、表示設定の「検索エンジンがサイトをインデックスしないようにする」にチェックが入っているのではないでしょうか。


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

ご確認ありがとうございます。

おそらくですが、表示設定の「検索エンジンがサイトをインデックスしないようにする」にチェックが入っているのではないでしょうか。

ローカル環境(旧Local by Flywheel)を確認してみましたが、チェックは入っていませんでした。
通常とは違う気になる点といえば、一般的な404ページではなくて、添付画像のような404ページが出ることです。

見た目も違うので、おそらく環境の問題と思うのでもうちょっと調べてみます。
ありがとうございます。


   
共有:

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

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

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

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

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

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

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

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