web-dev-qa-db-fra.com

Je veux changer la liste des médias avec une requête supplémentaire

Où puis-je insérer la condition en plus dans la requête pour la liste des supports. Dans un mot, je veux appliquer un filtre concernant la méta-valeur de la table postmeta. J'ai essayé d'obtenir la valeur avec le sql suivant. Mais je n'ai eu aucun changement.

J'ai modifié la fonction "prepare_items ()" dans le fichier wp-admin/includes/class-wp-media-list-table.php.

fonction publique prepare_items () {

    global $wp_query, $post_mime_types, $avail_post_mime_types, $mode;

    /**
    * 
    * paul lee
    * 
    */
    $q_args = $_REQUEST;
    $meta_query = array(
        array(
            'key' => 'meta_value',
            'value' => '%cloudinary%',
            'compare' => 'NOT LIKE'
        )
    );
    $q_args['meta_query'] = $meta_query;

    list( $post_mime_types, $avail_post_mime_types ) = wp_edit_attachments_query( $q_args );
    /*-----------------------------------------------*/



    $this->is_trash = isset( $_REQUEST['attachment-filter'] ) && 'trash' === $_REQUEST['attachment-filter'];

    $mode = empty( $_REQUEST['mode'] ) ? 'list' : $_REQUEST['mode'];

    $this->set_pagination_args( array(
        'total_items' => $wp_query->found_posts,
        'total_pages' => $wp_query->max_num_pages,
        'per_page' => $wp_query->query_vars['posts_per_page'],
    ) );
}

Je ne suis pas sûr si je pense mal que la méta_query sera également appliquée à la table postmeta. Je veux votre aide professionnelle. Merci

2
Paul lee

Comme indiqué dans les commentaires, éditer WP fichiers de base n'est pas une bonne idée. Vous pouvez facilement modifier la requête qui affiche vos publications dans les médias en ajoutant le code suivant à un plugin ou au functions.php de votre thème.

add_filter( 'pre_get_posts', '_wp_media_pre_get_posts' );

function _wp_media_pre_get_posts( $wp_query ) {
    global $pagenow;

    if( ! in_array( $pagenow, array( 'upload.php', 'admin-ajax.php' ) ) )
        return;

    $wp_query->set( 'meta_query', array(
        array(
            'key' => 'meta_value',
            'value' => '%cloudinary%',
            'compare' => 'NOT LIKE'
        )
    ) );

}
2
Ahmed Fouad