2

これが私の問題の「長い話」バージョンです:
wp-admin/admin-ajax.php ファイルをトリガーするこのニュースレター/購読フォームがありますが、Wordpress にログインしていないときはフォームが機能しませんでした。
結局のところ、admin-ajax.php ファイルには 302 が含まれています。

この問題の以前の解決策 (つまり、これあれ)を既に見たりテストしたりしましたが、どれも役に立ちませんでした。

関連する「wp-admin」保護をテーマファイル全体で検索しましたが、何も見つかりませんでした。
WP Better Security と W3C (および他のさまざまなプラグイン) の両方を変更して無効にしましたが、何も変わりませんでした。
htaccess を変更/削除しましたが、何も変わりませんでした。

私はこの問題にイライラしています。
この時点で、私のコードのどこかに「部外者」の admin-ajax.php へのアクセスをブロックしていることはわかっていますが、どこにあるのかわかりません。
それは、私の管理フォルダーを保護するものか、admin-ajax.php を保護するものです。

何か案は?
助けていただければ幸いです。
前もって感謝します!

4

1 に答える 1

0

ここでの問題は、Wordpress が ajax に対して 2 つの異なるフックを使用していることです。管理者用に 1 つ、ログアウトしたユーザー用に 1 つ使用します。私の推測では、あなたのフォームは後者を使用していません。

次の 2 つを見てください。

add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');

ワードプレスコーデックスから:

WordPress 2.8 以降、wp_ajax_(action) に似たフックがあります。

wp_ajax_nopriv_(action) は、ログインしていないユーザーに対して実行されます。したがって、訪問者とログインしているユーザーの両方に対してフロントエンドで起動する場合は、次のようにします。

add_action('wp_ajax_my_action', 'my_action_callback'); add_action('wp_ajax_nopriv_my_action', 'my_action_callback');

ここを参照してください: http://codex.wordpress.org/AJAX_in_Plugins

于 2013-09-21T03:20:27.420 に答える