Unable to prevent function using save_post firing twice

First, you can use this hook to target only one custom type: https://developer.wordpress.org/reference/hooks/save_post_post-post_type/ This hook (and save_post) is called the first time when you click on “new …” and then the hook is called with $update = FALSE. Then to send e-mail only when the object is updated, you can test $update like this: const … Read more

How can I find out what functions are assigned to actions?

There is a magic action all which is called on every action or filter. You can hook into this action and log all associated functions. In $GLOBALS[‘wp_filter’] which you can inspect too you can find all active hooks, eg. hooks that are actually used. I have written a small plugin T5 Debug Hook to see … Read more

Implementing advanced add_* function wrappers

For simple cases like quick one-liner returns one should remember that it’s possible to hook an anonymous function directly in the add filter call, e.g: add_filter(‘some_filter_hook’, function($v){return str_replace(‘..’, ‘.’, $v);}); add_action(‘some_action_hook’, function(){echo ‘….’;});

trigger save_post event programmatically

It’s wp_insert_post() vs. wp_update_post() – where update will ultimately also call: return wp_insert_post( $postarr, $wp_error, $fire_after_hooks ); The term “once” implies that it is being fired “afterwards”. /** * Fires once a post has been saved. * * @since 1.5.0 * * @param int $post_ID Post ID. * @param WP_Post $post Post object. * @param … Read more

WordPress Theme Update Action?

I have never tried to do what you are trying to do, so no promises, but there is an action hook called upgrader_process_complete in the upgrade method of the Theme_Upgrader class, and it look like it would do what you want. The action is called like: do_action( ‘upgrader_process_complete’, $this, array( ‘action’ => ‘update’, ‘type’ => … Read more

How to change “Draft” string for status of custom post type to “Unavailable”?

I was investigating the issue for this question, and one option is using the plugin Edit Flow. It can be configured to display custom post_status in specific CPT’s, but further tests are necessary to see if it applies to this case. Other option is using toscho’s Retranslate plugin, where you can define the string to … Read more

How to check if a hook is hooked or not?

Sure, that’s called has_action, which is an alias of has_filter. Usage: if ( has_action(‘hook_name’) ) { throw new \Exception(‘You cannot hook to a protected action.’); } else { do_action(‘hook_name’); } These two functions access the global array $wp_filter that stores all of the filters / actions

Advanced Custom Fields and Yoast SEO keyword analysis [closed]

Looking at the filter: $post_content = apply_filters( ‘wpseo_pre_analysis_post_content’, $post->post_content, $post ); it would be a matter of adding your fields content to string being analyzed. You have to do the get_field() part right, this is untested: add_filter( ‘wpseo_pre_analysis_post_content’, ‘filter_yoasts_wpse_119879’, 10, 2 ); function filter_yoasts_wpse_119879( $content, $post ) { $fields = get_field( ‘name’, $post->ID ); return … Read more