WordPress: Ordenar publicaciones por custom post type

Tengo un tipo de publicación personalizada llamada Contacto, con campos personalizados como nombre, apellido, número de teléfono, etc.

En la sección de administración están ordenados cronológicamente, creo, pero necesito que estén ordenados por apellido de forma predeterminada.

He leído todas las otras soluciones aquí y ninguna de ellas funciona, incluyendo:

function set_post_order_in_admin( $wp_query ) {
global $pagenow;
  if ( is_admin() && 'edit.php' == $pagenow && !isset($_GET['orderby'])) {
    $wp_query->set( 'orderby', 'surname' );
    $wp_query->set( 'order', 'ASC' );
  }
}
add_filter('pre_get_posts', 'set_post_order_in_admin' );

Pero sea cual sea el campo por el que trato de ordenar, nada cambia, excepto que alternar ASC / DESC parece cambiar para invertir el orden cronológico.

¿Qué estoy haciendo mal?

 

SOLUCION a Ordenar publicaciones por custom post type en WordPress

 

Consulte las soluciones a continuación,
function wpa84258_admin_posts_sort_last_name( $query ){
    global $pagenow;
    if( is_admin()
        && 'edit.php' == $pagenow
        && !isset( $_GET['orderby'] )
        && !isset( $_GET['post_type'] ) ){
            $query->set( 'meta_key', 'last_name' );
            $query->set( 'orderby', 'meta_value' );
            $query->set( 'order', 'ASC' );
    }
}
add_action( 'pre_get_posts', 'wpa84258_admin_posts_sort_last_name' );

o

Reemplazar
 $wp_query->set( 'orderby', 'surname' );
 $wp_query->set( 'order', 'ASC' );

Con

$query->set( 'meta_key', 'surname' ); // name of your post meta key
$query->set( 'orderby',  'meta_value'); // meta_value since it is a string

Puede ayudar

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *