質問: init中にis_archiveをチェックする必要があります 私のプラグインがいくつかのuri操作をする前に、私はページがアーカイブかどうかをチェックする必要があります。これらの操作はwpname__の前でのみ機能しますが、最初に実行してからis_archiveをチェックすると、チェックは常にfalseを返します。いくつかのpre -wpname__フックの間にis_archiveをチェックする(または同じ結果を得る)ことができますか?確認のためにis_archiveをpostidに渡すことができれば素晴らしいでしょうが、それはうまくいきません。edit:私の知る限りでは、アーカイブには実際の所もありません。 wpname__が起動する前に、現在のuriがアーカイブかどうかをチェックするための何らかの方法が必要です。edit:さらに実験してみると、私のuri操作はinitname__より後には実行できないようです。その時点でwpはすでに書き換えを行っており、そのような。そのため、initname__内でアーカイブページのステータスを確認する方法、またはinitname__の後にuriの書き換えを行う方法が必要です。どちらの方法でも、意図した結果が得られる限りは問題ありません。
回答: あなたが言ったように、これはinitの中で私が思いつくことができるものです! $globals配列を印刷しても、現在のページがアーカイブかどうかを確認する方法はありません。is_archiveも空白に設定されています。しかし$_get配列をチェックすると、q変数には現在表示されているアーカイブタイプが含まれます。これを使用して私はハックを思い付きました、それがいつもうまくいくならば、私はあなたを保証することができません!しかし、あなたはこれの周りに何かを試すことができます!<?php add_action('init', 'q'); function q() { //echo '<pre>'; //print_r($_get); //echo '</pre>'; $q = $_get['q']; //here you can substitute other 'archive' terms, say 'author', 'date' or '<custom taxonomy name>'. use a switch case or nested if-else to check all the archive terms in your environment! $pos = strpos($q, 'category'); if($pos !== false ) echo "category archive"; } これがうまくいくことを願っています!