Complemento de WordPress tipo de publicación personalizada página única

1 minuto de lectura

Estoy trabajando en un complemento de WordPress que crea un tipo de publicación personalizada. Ese tipo de publicación personalizada necesitará su propia página single.php. Sé que puedo crear un archivo llamado single-{tipo de publicación personalizada}.php en mi tema, pero necesito que este archivo esté en el directorio del complemento. ¿Cómo hago para que WordPress reconozca que quiero usar single-posttype.php de mi directorio de complementos en lugar de mi directorio de temas?

Esto es lo que uso, simplemente reemplace dirname(__FILE__) .'/templates/ con cualquier estructura de directorio que tenga. Lo bueno de esto es que se establecerá de forma predeterminada en el archivo de tema adecuado si no tiene un archivo de “anulación” en el $file ubicación.

add_filter( 'single_template', 'override_single_template' );
function override_single_template( $single_template ){
    global $post;

    $file = dirname(__FILE__) .'/templates/single-'. $post->post_type .'.php';

    if( file_exists( $file ) ) $single_template = $file;

    return $single_template;
}

Y, por supuesto, puedes hacer lo mismo con with

archive_template

y

 $file = dirname(__FILE__) .'/templates/archive-'. $post->post_type .'.php';

  • Funciona de maravilla. ¡Gracias Señor!

    – Dominick Allen

    11 mayo 2018 a las 18:10

¿Ha sido útil esta solución?