Entonces, ¿cuál es la mejor práctica aquí?
Yo diría una combinación de dejar que el tema lo maneje y proporcionar un valor predeterminado con su complemento.
Puede usar el single_template
filtro para cambiar la plantilla. En su devolución de llamada, vea si el tema proporcionó una plantilla para el tipo de publicación, si lo hizo, no haga nada.
<?php
add_filter('single_template', 'wpse96660_single_template');
function wpse96660_single_template($template)
{
if ('your_post_type' == get_post_type(get_queried_object_id()) && !$template) {
// if you're here, you're on a singlar page for your costum post
// type and WP did NOT locate a template, use your own.
$template = dirname(__FILE__) . '/path/to/fallback/template.php';
}
return $template;
}
Me gusta este método lo mejor. Combínelo con proporcionar un conjunto de sonido de "etiquetas de plantilla" (por ejemplo the_content
, the_title
) que admitan cualquier dato personalizado que acompañe a su tipo de publicación y le brinde al usuario final una gran capacidad de personalización junto con algunos valores predeterminados de sonido. Bbpress hace este tipo de cosas realmente bien: incluye plantillas de usuario si las encuentra y proporciona muchas etiquetas de plantilla.
Alternativamente, puede usar una devolución de llamada con the_content
filtro y simplemente cambiar cosas en el contenido en sí.
<?php
add_filter('the_content', 'wpse96660_the_content');
function wpse96660_the_content($content)
{
if (is_singular('your_post_type') && in_the_loop()) {
// change stuff
$content .= '<p>here we are on my custom post type</p>';
}
return $content;
}