admin管理员组文章数量:1430007
When the wordpress menu is saved in the backend, functions hooked on to save_post() run. Is there a way to make these run only when singular items are saved, and not when the menu is saved?
When the wordpress menu is saved in the backend, functions hooked on to save_post() run. Is there a way to make these run only when singular items are saved, and not when the menu is saved?
Share Improve this question asked Apr 26, 2019 at 10:59 vagu0071vagu0071 32 bronze badges 3 |1 Answer
Reset to default 0As Mr. Peattie and Mr. Nowell pointed out, you should check the post type as one of the first things in your save_post
function.
Here's couple of ways how to do it,
add_action( 'save_post', 'prefix_my_save_post_action', 10, 3 );
function prefix_my_save_post_action( $post_id, $post, $update ) {
// Check for single post type
if ( 'my_post_type' !== $post->post_type ) {
return;
}
// Check multiple post types with in_array()
$valid_post_types = array(
'post' => true,
'page' => true,
'post_type_a' => true,
'post_type_b' => true
);
if ( ! in_array( $post->post_type, $valid_post_types ) ) {
return;
}
// or with isset() <-- uses array keys
if ( ! isset( $valid_post_types[$post->post_type] ) ) {
return;
}
// Do stuff
}
There's also the save_post_{$post->post_type}
action that you could use to directly target a certain post type save action.
add_action( 'save_post_my_post_type', 'prefix_my_save__cpt_post_action', 10, 3 );
function prefix_my_save_post_action( $post_id, $post, $update ) {
// No need to check for post type as it is already in the action
// Do stuff
}
本文标签: savepost() on Menu Save
版权声明:本文标题:save_post() on Menu Save 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745543468a2662598.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
save_post
hook runs. Don't assume it only runs forpost
, it runs for pages, nav menu items, reusable blocks, etc – Tom J Nowell ♦ Commented Apr 26, 2019 at 11:49