投稿とページの読み込み用のフック
-
-
パブリックまたは管理者側/向き?public or admin side/facing?
- 0
- 2012-10-16
- kaiser
-
フロントエンド用.基本的に、特定の単一のカスタム投稿タイプが表示されたときにのみトリガーするようにします.For front end. Basically I want it to trigger only when a particular single custom post type is displayed.
- 0
- 2012-10-16
- Poulomi Nag
-
3 回答
- 投票
-
- 2012-10-16
wp
フックを使用して、global $wp_query
オブジェクトまたは任意の条件を確認できます.add_action( 'wp', 'wpse69369_special_thingy' ); function wpse69369_special_thingy() { if ( 'special_cpt' === get_post_type() AND is_singular() ) return print "Yo World!"; return printf( '<p>Nothing to see here! Check the object!<br /></p><pre>%s</pre>', var_export( $GLOBALS['wp_query'], true ) ); }
参照:codex.wordpress.orgの
wp
およびwp
のdeveloper.wordpress.orgYou can use the
wp
hook and check theglobal $wp_query
object or any conditional.add_action( 'wp', 'wpse69369_special_thingy' ); function wpse69369_special_thingy() { if ( 'special_cpt' === get_post_type() AND is_singular() ) return print "Yo World!"; return printf( '<p>Nothing to see here! Check the object!<br /></p><pre>%s</pre>', var_export( $GLOBALS['wp_query'], true ) ); }
See:
wp
in codex.wordpress.org andwp
in developer.wordpress.org-
'wp'フックはいつ実行されますか?can you please tell me when does 'wp' hook run?
- 0
- 2012-10-16
- Poulomi Nag
-
A) `after_setup_theme`と` setup_theme`の前で実行されるため、プラグインでのみアクセスできます.B)wp-settings.php内から呼び出される `WP ::main()`内でのみアクセスできます.A) It runs before `after_setup_theme` and `setup_theme`, so it's only accessible for plugins B) inside `WP :: main()`, which is called from within wp-settings.php.
- 0
- 2012-10-16
- kaiser
-
@kaiser `wp`フックは、` after_setup_theme`フックの後、 `template_redirect`の直前で起動しないため、テーマやプラグインから` wp`にアクセスできるようになりますか?(明確にするためだけですか?)@kaiser Doesn't the `wp` hook fire after the `after_setup_theme` hook and right before `template_redirect` therefore making `wp` accessible by themes as well as plugins? (just to clarify?)
- 1
- 2012-10-17
- Adam
-
- 2012-10-16
起動するアクションフックである
template_redirect
を使用しますテンプレートをレンダリングする前;add_action('template_redirect', 'hooker'); function hooker(){ //I load just before selecting and rendering the template to screen }
Use
template_redirect
which is the action hook that fires before rendering the template;add_action('template_redirect', 'hooker'); function hooker(){ //I load just before selecting and rendering the template to screen }
-
@PoulomiNag問題ありません、上記の答えを見つけてよかったです.小さな注意点の1つは、 `wp`は` after_theme_setup`フックの後に実行されるため、プラグインからアクセスできるだけでなく、テーマで安全に使用できることです.@PoulomiNag No problem, glad you found your answer above. Though I think one small note is that `wp` runs after the `after_theme_setup` hook, so its not just accessible by plugins, making it safe to use in themes.
- 0
- 2012-10-17
- Adam
-
確認したところ、はい.`wp`は` after_theme_setup`の後に実行されます.しかし、プラグインにはそれが必要です.したがって、 `wp`と`template_redirect`はどちらも問題なく機能します.ここで2つの答えを受け入れることができたらいいのに!:)I just checked and yes ; `wp` runs after `after_theme_setup`. But I need it for my plugin. So `wp` as well as `template_redirect` both work fine for me. Wish I could accept two answers here! :)
- 0
- 2012-10-17
- Poulomi Nag
-
それは大丈夫です、両方を受け入れる必要はありません、ただ彼らが発砲する順序を明確にしたかっただけです.私が夢中にならないように気をつけてください.プラグインで頑張ってください...That's ok, not necessary to accept both, just wanted to clarify the order in which they fire. Making sure I'm not going crazy you know. Good luck with your plugin...
- 0
- 2012-10-17
- Adam
-
関数名しゃれの+1+1 for function name pun
- 3
- 2020-02-28
- MJHd
-
- 2012-10-16
(カスタム投稿ではなく)ページのカスタムメタボックスに読み込むために、次のものを頻繁に使用しました.
add_action('admin_init','how_we_do_it_meta'); function how_we_do_it_meta() { if ( $_SERVER['SCRIPT_NAME'] == '/wp-admin/post.php' ) { $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID']; $template_file = get_post_meta($post_id,'_wp_page_template',TRUE); if ($template_file == 'page-how-we-do-it.php') { add_meta_box('how_we_do_it_who-meta', 'Who we work with...', 'how_we_do_it_who', 'page', 'normal', 'high'); add_action('save_post', 'save_how_we_do_it_meta'); } } }
I've quite often used the following to load in custom meta boxes on pages (rather than custom posts).
add_action('admin_init','how_we_do_it_meta'); function how_we_do_it_meta() { if ( $_SERVER['SCRIPT_NAME'] == '/wp-admin/post.php' ) { $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID']; $template_file = get_post_meta($post_id,'_wp_page_template',TRUE); if ($template_file == 'page-how-we-do-it.php') { add_meta_box('how_we_do_it_who-meta', 'Who we work with...', 'how_we_do_it_who', 'page', 'normal', 'high'); add_action('save_post', 'save_how_we_do_it_meta'); } } }
-
ダロンズに感謝します.ただし、ページの読み込み中にフロントエンドで機能するにはフックが必要です.何か案は?Thanks Darronz. But I need some hook to work at the front end during a page load. Any ideas?
- 1
- 2012-10-16
- Poulomi Nag
-
上記の `をadd_action( 'init'、//etc)`に変更した場合は、adminセクションだけでなく、ページの読み込みでも機能します.If you changed the above `to add_action('init', // etc)` then it'll work on the page load rather than only in the admin section.
- 0
- 2012-10-16
- darronz
-
@darronzそして、 `をチェックする必要があります!`init`フックは両側で実行されるため、内部にis_admin()`があります.@darronz And then you need to check `! is_admin()` inside, because the `init` hook runs on both sides.
- 2
- 2012-10-16
- kaiser
特定の投稿またはページが読み込まれたときに関数を実行する必要があります.ページの読み込み中に投稿が表示されているかどうかを確認できるフックはありますか?