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

プラグインとテーマがコアWordPress機能を拡張する方法。

3
休止フック参照を生成する
多くのプラグイン開発者は、フィルター/アクションフックを追加して、ユーザーが製品の機能を微調整できるように時間をかけているようです。これはすばらしいことですが、フックのリストと引数の数を提供することはあまりありません。 誰かがプラグイン(またはテーマ)のディレクトリを指し、利用可能なすべてのフックのリストを表示する最適な自動化された方法を見つけましたか? フックをスキャンするプラグインはいくつかあるようですが、私の知る限り、特定のページをレンダリングするために実際に呼び出されているプラ​​グインが表示されます。私が手に入れるものは便利です。しかし、特定のプラグインを操作していることがわかっている場合は、アクションまたはフィルターをフックできるすべての場所を知りたいことがあります。 だから私が本当に探しているのは、プラグインのルートディレクトリが与えられれば、各アイテムが含まれているリストを作成するものです: 鬼ごっこ タイプ(アクションまたはフィルター) 引数の数 ソースで(do_action()またはを介してapply_filter())呼び出される場所 これはおそらくすべてをうまくHTML化し、すべてのプラグインの管理UIに表示できるので、スクリプトは素晴らしいでしょう。しかし、有用な静的ファイルを出力するコマンドラインスクリプトでさえすばらしいでしょう。
10 plugins  hooks 

2
フロントエンドのプラグインにWordPressアイリスピッカーを実装するにはどうすればよいですか?
この質問ここでは、私は同じ質問をされていますが、充分な答えも私は私が応答を得るかもしれない、より一貫した方法で頼めば期待して再び求めていますので、選択した正解はありませんでした。 色を選択するためのWordpress Theme Customization APIペインに表示されるカラーピッカーホイールを実装しようとしています。フックを使用すると、スクリプトとスタイルのロードは正常に機能しますが、「admin_enqueue_scripts」は機能しますが、フックを使用してフロントエンドでこれらのスクリプトをロードしようとすると、「wp_enqueue_scripts」は機能しません。スタイルはエンキューされますが、スクリプトはエンキューされません。 Wordpressにすでにバンドルされているものと重複するファイルをプラグインにコピーすることを避けたいです。アイリスのカラーピッカーをフロントエンドで動作させる方法が必要です。 そして、なぜこれをしたいのかと思っている人のために、画面の横にフライアウトパネルを追加するプラグインを開発しています。これにより、wp-adminを介してログインしなくても、サイトにリアルタイムの一時的なスタイル変更を加えることができます。パネル。

1
単純にadd_filterを使用できるときにadd_actionを使用する価値はありますか?
ワードプレスのコードを調べたところ、add_actionの次の定義が見つかりました。 function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1) { return add_filter($tag, $function_to_add, $priority, $accepted_args); } なぜ私たちは自分自身で実行できる別の関数を呼び出すために1つのCPUサイクルを浪費しているのか、そして同じものに対して2つの異なる関数名を覚える必要がないのです。
10 hooks 

1
Wordpressプラグインのインストールリストに新しいタブを追加する
ユーザーがWP管理の[プラグインの追加]領域からプラグインを検索するときに、現在のタブの横に新しいページ(ページへのリンク付き)を追加したいと思います。 リンクが必要な場所は、以下のスクリーンショットでマークされています。 http://codex.wordpress.org/Adding_Administration_Menus @で探しましたが、無駄でした。 WPで許可されていますか? 前もって感謝します。

5
フックの優先順位に制限はありますか?
フィルターフックまたはアクションフックで他のすべてのフックを上書きしたい場合は、優先度を割り当て999ます。ただし、最近、優先順位に極端な値を使用する人20000もいます。99999 この高い優先度を使用するのはばかげているという事実に加えて、それらは実際に機能しますか?フックの優先順位に制限はありますか?制限を超えるとどうなりますか?極端な優先度を使用するとパフォーマンスに違いがありますか? 更新: @harkeは、スタックオーバーフローで数が制限されることを示唆していますPHP_INT_MAX
9 hooks 

2
データベースクエリのカウントと表示
WordPressサイトですべてのクエリをカウントして表示する方法を探しています。良いプラグインがあれば誰かが知っていますか? それ以外の場合は、コンソールで多くの作業をしているため、コンソールでクエリを確認することが解決策となります。

1
これらのフックの仕組みを説明してください
私はフックとアクションについて読みました、そしてdo_action('some_hook')それを見たとき、どこかにadd_action('some_hook', function() {...});または機能some_hook()がテーマのに存在することを意味することを知っていfunctions.phpます。 しかし、それは何ですか?!: woocommerce /含ん/クラス-WC-checkout.phpのライン#943: public function process_checkout() { try { ///////////// do_action( 'woocommerce_before_checkout_process' ); <----!!! if ( WC()->cart->is_empty() ) { throw new Exception( sprintf( __( 'Sorry, your session has expired. <a href="%s" class="wc-backward">Return to shop</a>', 'woocommerce' ), esc_url( wc_get_page_permalink( 'shop' ) ) ) ); } do_action( 'woocommerce_checkout_process' ); …
8 hooks  actions 

4
投稿を取得するWP_Queryを完全に停止することは可能ですか?
WP Redisを使用して、キーが$ query_vars_hashの$ wp_queryオブジェクト全体をキャッシュしようとしています。 これは以下$wp_queryに追加された方法$wp_object_cacheです: add_action('wp', function($wp) { if ( is_admin() ) return; global $wp_query; if ( !wp_cache_get($wp_query->query_vars_hash, 'globals') ) { wp_cache_add($wp_query->query_vars_hash, $wp_query, 'globals'); } }); 次に、WP_Query投稿を取得する前に、クエリが既にキャッシュされているかどうかを確認する必要があります。 add_action('pre_get_posts', function($query) { if ( is_admin() ) return; $cached_query = wp_cache_get($query->query_vars_hash, 'globals'); if ($cached_query) { $GLOBALS['wp_query'] = &$cached_query; return; // Return immediately to …
8 wp-query  hooks  cache 

2
パラメータ付きの特定のフックまたは汎用フックを起動する方が良いですか?
開発者がアクション/フィルターを使用してフックできるフォームを処理するフォームプラグインを作成しています。 私のプラグインは、さまざまなフィルターのセットでさまざまなフォームを処理できる必要があり、これを行うには2つの方法があります。 方法1 各フォームの特定のフックの発射。 したがって、このようなコードは私のプラグイン内でフォームと呼ばれる可能性があります: $formId = 'contact'; $errors = apply_filters('forms_validate_' . $formId, $errors, $data); そして、次のように使用できます: add_filter('forms_validate_contact', function($errors, $data){ if(empty($data['name'])){ $errors['name'] = 'Name is required'; } return $errors; } 10, 2) 方法2 呼び出し元の関数にパラメーターを渡します。 したがって、このようなコードは私のプラグイン内でフォームと呼ばれる可能性があります: $formId = 'contact'; $errors = apply_filters('forms_validate', $formId, $errors, $data); そして、次のように使用できます: add_filter('forms_validate', function($formId, $error, $data){ switch($formId){ case …
8 plugins  hooks 

2
Woocommerce製品のタイトルにサブタイトルを追加します
Pagelines Frameworkで構築されたサイトでWooCommerceを使用しています。サイトのどこにでも、商品名の下にサブタイトル/カスタマイズ可能なフィールドを表示する必要があります。現状では、WooCommerceはそのオプションを提供していません。 私はカスタムフィールドを使用しようとしましたが、WooCommerceもこれらを使用し、不要なものをサブタイトルと共に出力します。カスタムフィールドに "bookauthor"という名前を付けた場合、このコードは必要なカスタムフィールドのみを表示するように機能しますか? <?php echo get_post_meta($id, "bookauthor", true); ?> もしそうなら、フロントエンドの製品タイトルの直後に新しいフィールドを出力するにはどうすればよいですか? 私はこのphpファイルで必要なフックを見つけました(私はphpがわからないと思います。そのため、私はあなたに尋ねています)。 <?php /* * @hooked woocommerce_template_single_title - 5 * @hooked woocommerce_template_single_price - 10 * @hooked woocommerce_template_single_excerpt - 20 * @hooked woocommerce_template_single_add_to_cart - 30 * @hooked woocommerce_template_single_meta - 40 * @hooked woocommerce_template_single_sharing - 50 */ ?> フィルターで除外する方法は知っていますが、カスタムフィールドをそのリストに追加するにはどうすればよいですか? または、私が必要とするものを達成するためのまったく異なる方法はありますか? 助けることができる誰にも不変の感謝。

1
設定ボタンが押されたときにカスタムアクションをトリガーする
これは私の最初のワードプレスプラグインであり、動作させるのに多くの問題を抱えています。ほぼ問題なく動作しますが、この特定のことを実行する方法が見つかりません。 基本的に私はプラグイン用のカスタム設定ページを持っています、それはまったく問題なくすべてを保存しますが、問題は、(同じ設定ページ内の)他のボタン(この場合は同期アクション)をトリガーする方法を教えてください。 プラグインを構成した後、テーブルのレコードを作成/更新する別のアクションをトリガーしますが、初めてワードプレスの古い投稿からレコードを作成/更新するために同期を実行する必要があるためです。 編集: wsd-parse-apiのプラグインソースコード。

2
カスタム税編集のアクションフック
そのため、テンプレートファイルfunctions.phpに、カスタム分類用語を含む検索フォームをキャッシュする関数があります。特定の分類法の用語を追加/削除/編集するときに、キャッシュをフラッシュしたい(または1つのキャッシュグループを削除したい)。 出来ますか?おそらくdo_actionを使用しますが、どのフック用ですか?THX
8 hooks 

2
$ post / $ postsを確実に取得するための最も早いフック
$post/$postsフロントエンドとバックエンドの両方でグローバル変数にアクセスできる場所にフックできる最も早い可能なアクションは何ですか?私はコーデックスのリファレンス、アダム・ブラウンのリファレンスを調べて、ソースを何回か読み飛ばしてみましたが、良いものを見つけるのにあまり運がありませんでした。 pre_get_posts早すぎます。posts_selectionコールバック中に2回目のget_posts()呼び出しを行う場合、を使用しても機能しません。そしてtemplate_redirect管理者側では動作しません。フロントエンドthe_postよりも早い場合template_redirectがありますが、バックエンドでは実行されません。理想的にget_post()/get_posts()は、返品の直前に実行されるものが欲しいのですが、そのようなものは見ていません。 the_posts過去にこのフィルタを使用したことがありますが、より技術的に正しいので、アクションを使用します。 現在、私は2回フックしているだけです。一度template_redirectフロントエンドに使用admin_xml_nsし、再びバックエンドに使用します。ただし、私のロジックはこれらのフックのいずれにも意味的に関連していないため、私はあまり好きではありません。これは非常に一般的な必要性であり、機能する「post_get_posts」(ala pre_get_posts)のようなフックがあるはずです。両側に。

3
同じアクションに何回フックできますか?
私はいくつかの設定を含むテーマを使用してafter_setup_themeいますが、実行する必要がある独自の関数を書きたいのafter_setup_themeですが。私は自分のものを別のファイルに保存したいと思います。after_setup_theme複数回通話できますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.