質問: '<link rel="stylesheet" href="' . $url . '/wp-content/plugins/myqaptcha/jquery/myqaptcha.jquery.css" type="text/css" />'."\n"; $outer.= '<script type="text/javascript" src="' . $url . '/wp-content/plugins/myqaptcha/jquery/jquery.ui.touch.js"></script>'."\n"; $outer.= '<script type="text/javascript">var myqaptchajquerypage="' . $url . '/wp-content/plugins/myqaptcha/jquery/myqaptcha.jquery.php";</script>'."\n"; $outer.= '<script type="text/javascript" src="' . $url . '/wp-content/plugins/myqaptcha/jquery/myqaptcha.jquery.js"></script>'."\n"; $outer.= '<script type="text/javascript">jquery(document).ready(function(){if(jquery("p:has(\'textarea\')").length>0) jquery("p:has(\'textarea\')").before(\'<div class="qaptcha"></div>\'); else jquery("#comment").before(\'<div class="qaptcha"></div>\');jquery(\'.qaptcha\').qaptcha({disabledsubmit:true,autorevert:true});});</script>'."\n"; echo $outer; } } function myqaptcha_preprocess_comment($comment) { if (!is_user_logged_in()) { if(!session_id()) session_start(); if ( isset($_session['30corg']) && $_session['30corg']) { unset($_session['30corg']); return($comment); } else { if (isset($_post['isajaxtype']) && $_post['isajaxtype'] > -1) { //header('http/1.1 405 method not allowed'); clove find some error with ajax submit 2012-03-02 die("请滑动滚动条解锁"); } else { if(function_exists('err')) err("请滑动滚动条解锁"); else wp_die("请滑动滚动条解锁"); } } } else { return($comment); } } add_action('wp_enqueue_scripts', 'my_scripts_method'); add_action('wp_footer', 'myqaptcha_wp_footer'); add_action('preprocess_comment', 'myqaptcha_preprocess_comment'); 私は qaptcha実装ガイド を再確認しましたが、すべて正しく設定されています。間違っているかもしれない唯一の事は多分jqueryが実行される時です...?私は自分のプラグインプロジェクトをアップロードしました。ダウンロードボタン をここ で見つけて、テストしたい場合はそれをあなたのサイトに追加してください。whyスライダーが表示されないのを見つけてもらえますか?どこかに間違いがあるに違いありません...edit:これは、生成された出力へのライブリンクです。 http://bogsorken.com/wpse/wordpress/?p= 1
回答: まず最初に、スクリプトのエンキューにかなりの_doing_it_wrong()があります。コアバンドルスクリプトを上書きしないこのフックコールバックを削除してみて、問題が解決するかどうかを確認してください。function my_scripts_method() { wp_deregister_script( 'jquery' ); wp_deregister_script( 'jquery ui' ); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'); wp_register_script( 'jquery ui', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js'); wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'jquery ui' ); } add_action('wp_enqueue_scripts', 'my_scripts_method'); コアバンドルスクリプトはプラグインやテーマによって絶対に上書きされるべきではありません。コアバンドル版を他のバージョンに置き換えると問題が発生することがあります。プラグインバンドルのスクリプトを正しくエンキューするこれらのスクリプトは、コールバックを介してキューに入れられ、適切なアクションにフックされるべきです。function myqaptcha_wp_footer() { if (is_singular() && !is_user_logged_in()) { $url = get_bloginfo("wpurl"); $outer = '<link rel="stylesheet" href="' . $url . '/wp-content/plugins/myqaptcha/jquery/myqaptcha.jquery.css" type="text/css" />'."\n"; $outer.= '<script type="text/javascript" src="' . $url . '/wp-content/plugins/myqaptcha/jquery/jquery.ui.touch.js"></script>'."\n"; $outer.= '<script type="text/javascript">var myqaptchajquerypage="' . $url . '/wp-content/plugins/myqaptcha/jquery/myqaptcha.jquery.php";</script>'."\n"; $outer.= '<script type="text/javascript" src="' . $url . '/wp-content/plugins/myqaptcha/jquery/myqaptcha.jquery.js"></script>'."\n"; $outer.= '<script type="text/javascript">jquery(document).ready(function(){if(jquery("p:has(\'textarea\')").length>0) jquery("p:has(\'textarea\')").before(\'<div class="qaptcha"></div>\'); else jquery("#comment").before(\'<div class="qaptcha"></div>\');jquery(\'.qaptcha\').qaptcha({disabledsubmit:true,autorevert:true});});</script>'."\n"; echo $outer; } } 代わりにこれを試してください:function wpse73486_enqueue_myqaptcha_scripts() { if ( is_singular() && ! is_user_logged_in() ) { $url = plugin_dir_url( plugin_basename( __file__ ) ); wp_enqueue_style( 'qapcha-jquery', $url . '/jquery/myqaptcha.jquery.css' ); wp_enqueue_script( 'qaptcha-jquery', $url . '/jquery/myqaptcha.jquery.js', array( 'jquery' ), '', true ); wp_enqueue_script( 'jquery-touch-punch' ); // etc. } } add_action( 'wp_enqueue_scripts', 'wpse73486_enqueue_myqaptcha_scripts' ); スクリプトコードをファイルに移動して、エンキューできるようにするqaptcha.script.jsなどの新しいファイルを作成し、カスタムスクリプトコードを中に入れます。コードにjqueryとphpの両方が必要な場合は、qaptcha.script.phpなどのphpファイル内に配置して、ファイル内のwordpress関数にアクセスできるようにします。更新されたコアバンドルスクリプトを使用するwordpress 3.4はjquery-ui-touch-punchで出荷されました。プラグインバンドルのjquery-ui-touchライブラリの代わりにそれをエンキュー/使用する必要があるかもしれません。