タグ付けされた質問 「javascript」

インタラクティブなWebサイトの作成に役立つクライアント側のスクリプト言語。WordPressコンテキスト外でのJavaScriptの使用に関する質問はトピック外ですが、Stack Overflowで質問される場合があります。

3
JavaScriptファイルを特定の投稿やページに追加する最も効率的な方法は?
最も効率的な方法は、投稿やページ専用のjavascriptファイルを追加することです。 ここに私が思いついたいくつかの解決策があります: HTML編集ビューに切り替えて、JavaScriptをそこに投稿します(かなり悪い解決策) キーと値のペアでその投稿/ページの特定のJavaScriptを含むカスタムフィールド footer.phpで、現在のページに応じてJavaScriptファイルをロードします(ただし、多くの条件につながります) ちなみに、JavaScriptファイルはページ間で共有されません。これは、現在表示しているものに文字通り固有のものです。 何かご意見は?

1
.jsファイルを子テーマにエンキューしたい
子テーマディレクトリでカスタム.jsファイルをキューに入れようとしました。 子テーマのfunctions.phpで、次のコードを見つけます /* After this. you can override Accessible Zen's pluggable functions or add your own. * Remember, do your best to stay accessible! :) * */ add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') ); wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' …

6
jQueryおよびJavaScriptファイルを正しく含める方法
私は今、次のコードでそれをやっています: function uw_load_scripts() { // De-register the built in jQuery wp_deregister_script('jquery'); // Register the CDN version wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false); // Load it in your theme wp_enqueue_script( 'jquery' ); } add_action( 'wp_enqueue_scripts', 'uw_load_scripts' ); これは機能しますが、これをすべての人、または管理者以外のすべての人に対して行う必要があります(したがって、バックエンドはWordPressバージョンを使用しますか?): if (function_exists('load_my_scripts')) { function load_my_scripts() { if (!is_admin()) { wp_deregister_script( 'jquery' ); wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', …

5
カスタムメタボックスの値と必須フィールドの検証
カスタムの投稿タイプのメタボックスについて、特定のフォームフィールドが正しく記入されていることを検証する最良の方法は、これまでカバーしたことがなかったものです。 作成する可能性のあるメタボックスのカスタムフィールドを検証する最善の方法について専門家の意見を求めています。私の興味は: 投稿が公開/更新される前にフィールド検証が行われることを確認します 他のワードプレスのjavascriptと競合しないクラス/コードを利用する 必要に応じて特定のフィールドを定義できますが、他のフィールドはオプションです メール形式などの正規表現を含むカスタマイズ可能なルールに基づいてフィールドを検証する エラー/通知の視覚的な表示を制御する 前もって感謝します!

5
動的なJavaScript / CSSを生成するためのソリューション
現在のコンテキストに依存するjavascriptまたはCSSコードを生成する必要があるとしましょう。 たとえば、送信時にajaxリクエストを発行するフォームがホームページにあり、単一のページに別のフォームがあります。または、CSSの場合、ユーザーが独自のレイアウトを構築したり、色を変更したりできるテーマを作成する必要があります。 これまでに見たソリューション: ドキュメントのheadセクション(またはJSの場合は末尾)にコードを含めます site.com?get_assetsのようなコードを出力する特別なリクエストを行います。WPが2回ロードされるため、これは遅くなります。 一時ファイルに一定時間保存し、そこからロードします。公開テーマまたはプラグインについてはあまり信頼できません。 Javascriptのみ-毎回ロードされる通常のファイルに入れて、静的にします。この場合、コードにあらゆる状況を処理させる必要があります。 他の人を知っていますか?どちらに行きますか?

2
オブジェクト/ JSONをwp_localize_scriptに渡す
オブジェクトリテラルを含むjavascriptの作業部分があります。しかし、ローカライズする必要があります。wp_localize_script()を取得して正しいフォーマットを出力できるように、それを書き換える方法を模索しています。 ローカライズされていない(動的ではない)バージョンは次のようになります。 var layoyt_config = { 'header' : 1 , 'footer' : 1 , 'ls' : {'sb1':1} , 'rs' : {'sb1':1,'sb2':1} , 'align' : 'center' }; さて、これらの値をphpで生成するには(いくつかのwp_settingsに基づいて)wp_localize_scriptを使用したいので、そこから取得できます。 var layoyt_config = my_localized_data.layoyt_config; そして、そのオブジェクトプロパティにそのデータを取得するために、私はこれを行うことができましたが、明らかにそうではありませんでした。 $data = array( 'layout_config' => { 'header' : 1 , 'footer' : 1 , 'ls' : {'sb1': 1} …

6
JavaScriptファイルのテーマパス
テーマファイルへのパスをjavascriptファイルに含める必要があります。これについてどうすればいいですか?私はすでに試しました: var templateUrl = "<?php get_stylesheet_directory_uri(); ?>"; function LightboxOptions() { this.fileLoadingImage = "'"+templateUrl+"/img/loading.gif'"; this.fileCloseImage = "'"+templateUrl+"/img/close.png'"; this.resizeDuration = 700; this.fadeDuration = 500; this.labelImage = "Image"; this.labelOf = "of"; } これはパスを提供しません<?php get_stylesheet_directory_uri(); ?>が、実際のパスの代わりに挿入するだけです。何か案は?前もって感謝します!

6
特定のページにのみコードを含める方法は?
プラグインとショートコードについて学んでいます。プラグインをアクティブにすると、そのコードがすべてのページ(ショートコードのないページを含む)に読み込まれることに気付きました。(コンテンツと管理ページを意味するものではありません)。一部のコンテンツページでは特定のショートコードを使用し、他のコンテンツページでは使用しませんが、いずれにしてもプラグインのコードがロードされます。プラグインがショートコードが使用されているページにのみ含まれるようにするにはどうすればよいですか? もっと詳しく: ライトボックスを作成するプラグインがあるとしましょう。プラグインをアクティブにします。「Cool Images」ページで、ショートコードを使用してライトボックスを作成します。ライトボックスショートコードを使用しない[About]ページで[View Source]をチェックすると、ライトボックスプラグインのコードがロードされていることがわかります。プラグインを記述すると、必要なページにのみコードが読み込まれるようになり、ページの読み込みが速くなります。これは可能ですか?そうでない場合、ページに不必要にロードされる多くのプラグインのコードがあります。何か案は?

3
依存関係のないwp_add_inline_script
ページのフッターに挿入したいJavaScriptスニペットがあります。これはトラッキングコードです。Googleアナリティクスに似ているとしましょう。依存関係はなく、スタンドアロンのスニペットです。 私はこのようなことができます function render_tracking_code(){ wp_enqueue_script( 'depends-js', 'https://rdiv.com/dummy.js', array(), '0.01', true ); wp_add_inline_script( 'depends-js', 'aWholeBunchOfJavascriptCode' ); } add_action( 'wp_enqueue_scripts', 'render_tracking_code' ); 少しばかげているようですが(dummy.jsは空のファイルです)、動作します。依存関係をスキップする方法はありますか?

1
WordpressはいつCDATAのインラインスクリプトをラップしますか?
ワードプレスのユーザーがスクリプトのスニペットとhtmlを自分の投稿の本文にコピー/ペーストすることで、もちろん私たちのサードパーティスクリプトの問題をデバッグしています(もちろん、非現実的な例): <script> window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); </script> ワードプレスのインストールによってはこれをCDATAでラップするものもあれば、そうでないものもあることに気づきました(おそらく、何らかのDOCTYPEチェックを行ったためです-これでテストしたすべてのテーマはHTML5 doctypeを使用していました)。 ただし、CDATAでスクリプトをラップすると、ユーザーは次のバグに噛まれるでしょう:https : //core.trac.wordpress.org/ticket/3670(クロージング>が誤ってに置き換えられます>)。これにより、ブラウザーはスクリプトの内容を無視します。 : <script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script> 私はWP-Fuをあまり所有していませんが、グーグルで問題を特定するだけでしたので、私の質問は、WordPressがインラインスクリプトをCDATAセクションにラップするのはいつですか?ユーザーはどういうわけかこの動作を防ぐことができますか?ユーザーは、WPコアを変更せずに、上記のバグをどうにかして回避できますか?

2
カスタマイザJS API
わかりましたので、カスタマイザーのJS APIを使用して動的に新しいパネルセクションとコントロールを作成するように教育しています。 それは数日イライラしていて、JS APIを介してこれを達成する正確な方法を得ることができませんでした。 これまでのところ、これは私がそれを実現するために行っていることですが、成功していません: // for Settings api.create( params.id, params.id, params.default, params.args ); // for controls var controlConstructor = api.controlConstructor[params.type]; var control = new controlConstructor(params.id, { params: params, previewer: api.previewer }); api.control.add( params.id, control ); //for Sections var section = new api.Section(params.id, { params: params }); api.section.add( params.id, section …

3
REST APIから取得したナンスは無効であり、wp_localize_scriptで生成されたナンスとは異なります
Googleから届いたものの場合:何をしているのか本当に理解していない限り、REST APIからナンスを取得すべきではありません。REST APIを使用したCookieベースの認証は、プラグインとテーマのみを対象としています。シングルページアプリケーションの場合は、おそらくOAuthを使用する必要があります。 この質問が存在するのは、単一ページのアプリを構築するときに実際に認証する方法がドキュメントで明確になっていない、または明確ではなかったため、JWTは実際にはウェブアプリに適しておらず、OAuthはCookieベースの認証よりも実装が難しいためです。 このハンドブックには、Backbone JavaScriptクライアントがナンスを処理する方法の例があり、この例に従うと、/ wp / v2 / postsなどの組み込みエンドポイントが受け入れるナンスを取得します。 \wp_localize_script("client-js", "theme", [ 'nonce' => wp_create_nonce('wp_rest'), 'user' => get_current_user_id(), ]); ただし、Backboneの使用は問題外であり、テーマも問題なので、次のプラグインを作成しました。 <?php /* Plugin Name: Nonce Endpoint */ add_action('rest_api_init', function () { $user = get_current_user_id(); register_rest_route('nonce/v1', 'get', [ 'methods' => 'GET', 'callback' => function () use ($user) { return …

3
ローカライズ済みのスクリプトをインターセプトする方法
プラグインがスクリプトを使用している場合(有名な例:jQuery UI Datepicker)、スクリプトが出力をレンダリングする方法に不満がある場合は、2つの可能性があります。 1.スクリプトの登録を解除する>独自のバージョンを追加する だから、最初に、あなたは(優先順位やフックを見つけ、その後、ハンドルをチェックする必要があると思いwp_enqueue_scripts、login_enqueue_scripts...あなたはドリルを知っているなど、)。 2. jQueryプラグインパラメータを変更する 通常-プラグインががらくたでない場合-それを使用して、PHPからJSにパラメーターをプッシュします。 wp_localize_script( $handle, $object_name, array( // data ) ); これはJSスクリプトにデータを追加するスマートな方法ですが、デフォルトではフィルターできません。どちらWP_ScriptsもWP_Dependencies申し出任意のフィルタユーザーが後で利用することができます 質問: PHPからJavaScriptに移動された引数/パラメーターをどのようにフィルタリングできwp_localize_scriptますか?

1
投稿コンテンツでJavaScriptが許可されているのはなぜですか?
コーデックスは、投稿コンテンツにJavaScriptを追加できないと言っています https://codex.wordpress.org/Using_Javascript でも、できるのに。私はすべてのプラグインをオフにして26テーマに変更しましたが、役に立ちません-投稿コンテンツを介してjavascriptを追加し、フロントエンドで実行させることができます。セキュリティ上の理由から、(oembedなどを除いて)投稿コンテンツを通じて誰もがjavascriptを追加できるようにしたくありません。 誰かがこれを経験したり、役立つアイデアがありますか? ありがとう

1
WP Customize JSメソッドを拡張することは可能ですか?
で匿名apiオブジェクトのメソッドを拡張できるかどうか疑問に思っています wp-admin/js/customize-control.js。これらのメソッドの1つを独自のカスタムロジックで上書きする必要がありますが、すぐに呼び出される関数式にラップされているため、それは不可能だと思います。 /* globals _wpCustomizeHeader, _wpMediaViewsL10n */ (function( exports, $ ){ // code })( wp, jQuery ); 私の知る限り、ウィンドウオブジェクトからプロトタイプを拡張することはできませんwindow.wp.customize。これは、匿名で実行され、からは利用できないためです。そのようなことが可能であるかどうか何か考えはありますか?.toggle()メソッドのドキュメント/説明でこれをオーバーライドすることについての言及もあります:https : //github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110、しかし私はそれらが単にJSファイル全体をフォークし、WPバージョンをデキューして独自のものをエンキューすることによって意味するのか、それとも意味があるのか​​別のものなのかはわかりません。 それは可能であるように見えますが、それはwp.customize.{method}.extend({ foo: // replace method foo here })パブリックベースクラス/オブジェクトにのみ適用され、wp-admin/js/customize-control.js

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.