El truco para filtrar posts por autor
Efectivamente, y tal y como lo estabas adivininando, recurrir a nuestro fichero más personalizable de todo WordPress: el archivo functions.php
Tan solo incluye esta función y su llamada en tu fichero y listo:
function comaporter_filter_by_the_author() {
$params = array(
'name' => 'author', // This is the "name" attribute for filter <select>
'show_option_all' => 'All authors' // label for all authors
);
if ( isset($_GET['user']) )
$params['selected'] = $_GET['user']; // choose selected user by $_GET variable
wp_dropdown_users( $params ); // print the ready author list
}
add_action('restrict_manage_posts', 'comaporter_filter_by_the_author');
Otro truquillo interesante
Si quieres que solo aparezca la opción para filtrar posts por autor en las entradas, puedes hacerlo de forma muy sencilla.
Ya sea porque tengas muchos custom post types personalizados y no te interese o por cualquier otro motivo, simplemente, añade estas dos líneas al comienzo de la función:
if ( 'post' !== $post_type )
return;
Y añade la variable $post_type como argumento de esa función, quedando el código fuente a pegar de esta forma:
function comaporter_filter_by_the_author($post_type) {
// Apply this only on a specific post type
if ( 'post' !== $post_type )
return;
$params = array(
'name' => 'author', // this is the "name" attribute for filter <select>
'show_option_all' => 'Todos los autores' // label for all authors
);
if ( isset($_GET['user']) )
$params['selected'] = $_GET['user']; // choose selected user by $_GET variable
wp_dropdown_users( $params ); // print the ready author list
}
add_action('restrict_manage_posts', 'comaporter_filter_by_the_author');
Evidentemente, si necesitas que solo se aplique, digamos, al tipo de post «portfolio» para filtrar los portafolios por autor en el backend, sustituye «post» de la línea 3 por el tipo «portfolio».
Recuerda siempre crear un tema «child» sobre tu tema principal para poder customizarlo como prefieras, y de esta forma, dejar el tema principal intacto para poder actualizarlo sin problemas.
Fuente: Rudrastyh
Ver comentarios
Buenísimo, justo estaba viendo como hacer algo asi