現在「イノセンス」スキンを適用中です。

カテゴリー・タグのインデックス設定に関する不具合 | 不具合報告 | Cocoon フォーラム

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

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

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

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

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

wpForoの解決済みリンク

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

wpForoのいいねリンク

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

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

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

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

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

フォーラムのTwitterアカウント(@CocoonForum)はこちら

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

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


ろこ
(@lococo)
Prominent Memberサイト
結合: 3年前
投稿: 807
Topic starter  

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

がありますが、同じフック'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)などでは不具合が生じます。


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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


ろこ
(@lococo)
Prominent Memberサイト
結合: 3年前
投稿: 807
Topic starter  

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

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

 

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

  1. 'the_category_noindex'
  2. 'the_tag_noindex'

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

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

 

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

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

 

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


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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

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


わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 
投稿者:: @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)
This post was modified 3週間前 by わいひら

わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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

SELECT DISTINCT GROUP_CONCAT(term_id) AS ids FROM wp_termmeta 
WHERE (meta_key = 'the_category_noindex') AND (meta_value = 1)
 
This post was modified 3週間前 by わいひら

ろこ
(@lococo)
Prominent Memberサイト
結合: 3年前
投稿: 807
Topic starter  

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

確認しました。

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

 

 

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

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'のうちタグに紐づいている設定値のみで選別するなど

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

 


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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

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

This post was modified 2週間前 by わいひら

わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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

This post was modified 2週間前 2回 by わいひら

わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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サイト
結合: 3年前
投稿: 807
Topic starter  

以下のような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エラーのままかもしれませんが、一応子テーマ等でフックから有効化することはできます。


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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

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


ろこ
(@lococo)
Prominent Memberサイト
結合: 3年前
投稿: 807
Topic starter  

確認しました。

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

 

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

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


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
結合: 3年前
投稿: 11663
わいひら - Facebookわいひら - Twitter
 

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

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

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

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


共有:
スポンサーリンク
わいひらをフォローする
おすすめサーバー(コスパ・バックアップ重視型)

性能も兼ね備えながら安くブログ運営を開始できる点においてのNo.1。
それでいてブログ成長後は、十分すぎるほどのスペックアップ余力も担保されている。

◎安く始められる
◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎東京・大阪でリージョン選択が可能
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:2年7ヶ月

1年以上の契約をする場合は、クーポンコード入力でさらに10%割引(※2021/6/30まで)。

クーポンコード:PK4JK4RJ

クーポンの使用方法はこちら

とにかく速い。サイトに表示スピードを求めるならココ。
管理画面がシンプルで使いやすい。

◎nginxを用いた高速サーバー(完全SSD)
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
○http/2(高速化プロトコル)に対応
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎サーバ引っ越しツールあり(無料)
○サーバ引っ越し依頼が可能(有料)
◎ドメインとサーバー代のチャージ払いが可能

サービス運営期間:2年5ヶ月

安定感抜群のサーバーです。あまり急激なアクセス変動がないアフィリエイトサイトに向いています。

◎nginxを用いた高速サーバー(完全SSD)
◎老舗サーバーなので安定感抜群
◎ディスク容量が多い
◎転送量が多い
◎同サービス内でドメイン管理が可能
○http/2(高速化プロトコル)に対応
○毎日無料バックアップ(14日分)
○DBは7日以内なら無料自動復旧可能
×ファイルは有料かつ手動での復旧
×プラン変更でCPUのスペックアップができない
×プラン変更しても即時反映されない
×アダルト・出会い系サイト不可

サービス運営期間:17年

常に新しいことに挑戦しているフロンティア精神あふるるレンタルサーバーです。
LiteSpeedやHTTP/2を日本で初めて導入したサーバー。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎転送量が多い
◎ディスク容量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
○ファイルは14日以内なら無料復旧可能(※手動)
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:4年

格安な値段で始められる高機能サーバーです。
性能も備えつつ最安ならここ。
ただし少し機能は弱い。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎激安プランが用意してある
◎値段あたりのスペックが高い(コスパ良し)
◎サーバ引っ越し依頼が可能(無料)
◎アダルト・出会い系サイト可
○http/2(高速化プロトコル)に対応
△プランのアップは可能だがダウンは不可
△毎日自動バックアップ(1日分)
△前日のバックアップからのみ復元できる(無料)

サービス運営期間:5年

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