Cómo modificar un tipo de artículo en WordPress
WordPress tiene un filtro para modificar los argumentos de un tipo de artículo durante el proceso de registro.
Problema
A veces necesitamos modificar un tipo de artículo, pero el código que lo registra está en un archivo que no podemos editar. Por ejemplo, supongamos que un plugin registró el tipo de artículo 'ns_testimonial_cpt'
sin soporte para páginas de archivo, pero necesitamos un archivo para este tipo de artículo.
Solución
Utiliza el filtro 'register_post_type_args'
para resolver este problema. El mismo permite filtrar los argumentos de un tipo de artículo justo antes de ser registrado en WordPress.
Las funciones ancladas a este filtro reciben los argumentos actuales del tipo de artículo y el identificador del tipo de artículo. Deben retornar los nuevos argumentos del tipo de artículo.
/**
* Filters the arguments for registering a post type.
*
* @since 4.4.0
*
* @param array $args Array of arguments for registering a post type.
* @param string $post_type Post type key.
*/
$args = apply_filters( 'register_post_type_args', $args, $this->name );
Ejemplo
Este código modifica el tipo de artículo 'ns_testimonial_cpt'
mencionado anteriormente para que soporte páginas de archivo.
/*
* Updates the 'ns_testimonial_cpt' post type while it is being registered.
*/
function ns_update_testimonial_cpt($args, $post_type){
if($post_type == 'ns_testimonial_cpt'){
$args['has_archive'] = true;
$args['rewrite'] = array('slug' => 'testimonials');
$args['query_var'] = 'testimonial';
}
return $args;
}
add_filter('register_post_type_args', 'ns_update_testimonial_cpt', 10, 2);
Saber más
Te recomiendo los otros tutoriales de esta serie para que sepas más sobre los tipos de artículos en WordPress.
Código fuente
El código fuente desarrollado en este tutorial está disponible aquí.
Comentarios