How may I filter get_users() similarly to pre_get_posts?
There’s the pre_user_query action called in the prepare_query() method of the WP_User_Query class defined in wp-includes/user.php: do_action_ref_array( ‘pre_user_query’, array( &$this ) );
There’s the pre_user_query action called in the prepare_query() method of the WP_User_Query class defined in wp-includes/user.php: do_action_ref_array( ‘pre_user_query’, array( &$this ) );
I found that it required removing 4 filters/actions to undo WPML’s home_url modification. Since I didn’t know what else this might break, I ended up changing my site’s logo to use site_url() which in my case was the same, but not changed by WPML. function disable_things(){ remove_filter( ‘page_link’, array( $this, ‘permalink_filter’ ), 1, 2 ); … Read more
Even if is not very flexible filter you can use the gettex hook. Only be aware that this filter runs for every string being translated, so can affect performarce if over-used. To narrow the performance impact you can add it only of admin footer, and remove it just after had use it: add_action(‘admin_footer’, function() { … Read more
I believe that the page title you are talking about is the title from the page from the main query. the_title() filter (and the_content() filter for that matter) targets all the respective template tags regardless of query. To avoid this, target only the main query and the specific page. You can try the following inside … Read more
this does the trick <?php function add_class_to_term_description($term_description) { echo ‘<div class=”cell”>’ . $term_description. ‘</div>’; } add_filter( ‘term_description’, ‘add_class_to_term_description’ ); ?>
Seems like your assessment is correct and that specific function will be called before you will have a chance to add the filter in a traditional way. The related code flow is a call relatively early at boot time to wp_not_installed to check if wordpress is installed which calls in turn is_blog_active which tries to … Read more
If Divi theme uses wp_mail() function (which most likely does), you can use the wp_mail filter to pass your own arguments to the function: function filter_divi_mail( $args ) { // Modify the options here $custom_mail = array( ‘to’ => $args[‘to’], ‘subject’ => $args[‘subject’], ‘message’ => $args[‘message’], ‘headers’ => $args[‘headers’], ‘attachments’ => $args[‘attachments’], ); // Return … Read more
You can hook on an early action and apply the filter for your use case: add_action( ‘load-profile.php’, ‘allow_profile_html_wpse_91564’ ); function allow_profile_html_wpse_91564() { global $current_user; if( ‘2’ == $current_user->ID ) remove_filter(‘pre_user_description’, ‘wp_filter_kses’); } The hook load-$pagenow runs in all default admin pages (i.e., not added by a third party), and it’s declared in the file /wp-admin/admin.php. … Read more
Because the credit data is saved in the attachment’s post meta, not the main post: $credit = get_post_meta( $post->ID /* Wrong ID! */, ‘credit’, true ); Instead you need to catch the ID of the inserted image: function attach_image_credit( $images ) { $return = $images[0]; // Get the image ID from the unique class added … Read more
This is working for me $shortcode=”book”; $pattern = get_shortcode_regex(); // if shortcode ‘book’ exists if ( preg_match_all( “https://wordpress.stackexchange.com/”. $pattern .’/s’, $post->post_content, $matches ) && array_key_exists( 2, $matches ) && in_array( $shortcode, $matches[2] ) ) { $shortcode_atts = array_keys($matches[2], $shortcode); // if shortcode has attributes if (!empty($shortcode_atts)) { foreach($shortcode_atts as $att) { preg_match(‘/id=”(\d+)”https://wordpress.stackexchange.com/”, $matches[3][$att], $book_id); // … Read more