質問: '.$output.' !'; if ( $output != '' ) return $output; 関数gallery_shortcode($ attr)の中/ wp-includes/media.phpにあります。 2回実行されるように見えますが、ajaxインクルージョンでは、最初は出力が空であり、その後はフィルタリングされません。まあ、すべての効果で、私が言及した「第2ラウンド」エコー出力も、再設定時に空のままになることが起こりますadd_filter前do_shortcode;それ以外の場合は表示されます(しかし、私が言ったように、フィルタリングされていません)。私もそれを追跡しようとしましたecho has_filter('post_gallery'); echo current_filter(); そして、hasが常に1を返す一方で、current最初に期待どおり 'post-gallery'を返し、次にリクエストを処理するために必要な '* wp_ajax_nopriv_etc *'フックによって上書きされますadmin-ajax.phpしかし、実際にはアクションおよびnot フィルターです。 (?!?)また、デフォルトの関数をフィルタリングせずにショートコードを直接実行し、元のショートコードを削除して新しいものを追加するために、クリーナーギャラリープラグインをハッキングすることも成功しませんでした。通常の投稿の魅力のように機能しますが、ajaxリクエストにプラグインを実装する方法はないようです。私はますます混乱しています。私を助けてください!( wp.orgフォーラム にも投稿されています)
回答: awww ... inadmin-ajax.php:define('wp_admin', true); cleaner-gallery.php:function cleaner_gallery_setup() { if ( is_admin() ) { require_once( cleaner_gallery_dir . 'admin.php' ); } else { require_once( cleaner_gallery_dir . 'gallery.php' ); } } だから私は手動でwp_admin定数をチェックした後にスキップされた必要なプラグインコードをインクルードして実行しなければなりません、しかし私はフロントエンドのajaxハンドラの必要性がますます緊急になっていると思います!