WP_Query equivalent of SQL UNION ALL

You can run 2 wp_query, get the ids and pass those as the post__in parameter to a 3rd wp_query. Not efficient but will do the job. Or you can use a subquery and do it all with just one wp_query. Something like the following: add_filter( ‘posts_where’, ‘myprefix_posts_where’, 10, 2 ); new WP_Query([ ‘post_status’ => ‘publish’, … Read more

WordPress query_posts with multiple tax_query

You could build an intermediary array for the tax_query parameter: $tax_query = array(); $taxonomies = array( ‘product_cat’, ‘sub_category’, ); foreach ( $taxonomies as $taxonomy ) { if ( ! empty( $_POST[ $taxonomy ] ) ) { $tax_query[] = array( ‘taxonomy’ => $taxonomy, ‘terms’ => $_POST[ $taxonomy ], ); } } query_posts( array( // … ‘tax_query’ … Read more

Developing a “fallback” for empty wp_query results based on post dates

PHP strtotime() takes some weird string values that we can use in combination with the WP_Query date_query ‘before’ keyword. For example, we can get X posts before 1 year before tomorrow: $tomorrow_a_year_ago = wp_date( ‘Y-m-d’, strtotime( ‘-1 year +1 day’ ) ); $args = array( ‘post_type’ => ‘post’, ‘posts_per_page’ => 5, ‘post_status’ => ‘publish’, ‘orderby’ … Read more

How could i add username field in WooCommerce

// Add Username Field to Registration Form add_action( ‘woocommerce_register_form_start’, ‘custom_woocommerce_register_username’ ); function custom_woocommerce_register_username() { ?> <p class=”form-row form-row-wide”> <label for=”reg_username”><?php _e( ‘Username’, ‘woocommerce’ ); ?> <span class=”required”>*</span></label> <input type=”text” class=”input-text” name=”username” id=”reg_username” value=”<?php echo ( ! empty( $_POST[‘username’] ) ) ? esc_attr( wp_unslash( $_POST[‘username’] ) ) : ”; ?>” /> </p> <?php } // Validate … Read more