Meta Query Improvements
-
PPWP is overriding meta query used by any other plugins/theme. Can this be improved ?
if ( ! is_admin() && $query->is_main_query() ) {
if ( $post && post_password_required( $post->ID ) ) {
$meta_query = array(
array(
'key' => PPW_Constants::GLOBAL_PASSWORDS,
'compare' => 'NOT EXISTS',
),
);
$query->set( 'meta_query', $meta_query );
}
}
if ( defined( 'REST_REQUEST' ) && REST_REQUEST && isset( $query->query_vars['s'] ) ) {
$meta_query = array(
array(
'key' => PPW_Constants::GLOBAL_PASSWORDS,
'compare' => 'NOT EXISTS',
),
);
$query->set( 'meta_query', $meta_query );
}An improved version could be:
if ( ! is_admin() && $query->is_main_query() ) {
if ( $post && post_password_required( $post->ID ) ) {
$meta_query = $query->get( 'meta_query', array() ); // Get existing meta queries
$meta_query[] = array(
'key' => PPW_Constants::GLOBAL_PASSWORDS,
'compare' => 'NOT EXISTS',
);
$query->set( 'meta_query', $meta_query ); // Merge and set meta queries
}
}
if ( defined( 'REST_REQUEST' ) && REST_REQUEST && isset( $query->query_vars['s'] ) ) {
$meta_query = $query->get( 'meta_query', array() ); // Get existing meta queries
$meta_query[] = array(
'key' => PPW_Constants::GLOBAL_PASSWORDS,
'compare' => 'NOT EXISTS',
);
$query->set( 'meta_query', $meta_query ); // Merge and set meta queries
}This approach ensures that your meta queries are appended rather than overwriting any previously defined meta queries.
Thanks.
Viewing 5 replies - 1 through 5 (of 5 total)
Viewing 5 replies - 1 through 5 (of 5 total)
The topic ‘Meta Query Improvements’ is closed to new replies.