Uso de la etiqueta condicional is_page con un tipo de publicación personalizado
Según la documentación de is_page, al proporcionar el slug como argumento, WordPress puede indicarme si la página actual es la representada por ese slug. ¿Quizás estoy usando el slug incorrecto? Sin embargo, probé tanto la ruta usada en el argumento rewrite como lo que considero que es el "slug" o, en otras palabras, el elemento usado para registrar el CPT.
A continuación un fragmento de código para entender mejor:
'rewrite' => array( 'slug' => 'faqs/archivio' )
);
register_post_type( 'faqs', $args );
Intenté esto usando el slug para un tipo de publicación personalizado, pero no pude hacerlo funcionar.
Entonces, dos preguntas:
- ¿Se supone que is_page debe funcionar en este caso?
- Si no, ¿cuál es la mejor alternativa?
Gracias, Andrea

La creación de un tipo de publicación personalizado lo tiene dentro de la definición, un tipo de publicación. Además, la página es solo un tipo de publicación predeterminado. Si registras tu tipo de publicación personalizado, entonces verifica ese tipo de publicación, no una página.
Etiqueta condicional is_singular
La función, etiqueta condicional is_singular()
tiene como propósito principal verificar si se está viendo una publicación singular. Sin embargo, también se puede usar para verificar si se está viendo una publicación singular de un tipo de publicación dado ingresando el parámetro $post_type
como se muestra en el siguiente fragmento de código.
is_singular( 'tu_tipo_de_publicacion_personalizado' );
o diferentes tipos de publicaciones
is_singular( array( 'tu_tipo_de_publicacion_personalizado_1', 'tu_tipo_de_publicacion_personalizado_2' ) );
Sugerencia para depurar
Yo uso el plugin Debug Objects para depurar temas en este contexto.
Tal vez esto también te ayude, a menudo es más fácil que leer el código o el codex.
Mira la siguiente captura de pantalla del plugin, el resultado de las etiquetas condicionales, incluyendo is_page()
y is_single()
en un CPT.

Gracias, descargaré este plugin. ¿Puedes aclarar dónde está el error tipográfico? Aparentemente mi CPT funciona bien, así que no lo entiendo.

Lo siento... ahora entiendo la frase. Escribiste "a post typo" donde debería haber sido "a post type". Así que pensé que era un error tipográfico de mi parte. Por cierto, he instalado el plugin, que ya no está en beta. El diseño es diferente y no puedo encontrar la salida de mi is_page o is_singular. Supongo que están en la sección debug_hooks.

Sí, fue un error de mi parte, ahora corregido a "type". Si has instalado el plugin, ve a la configuración, activa el tema condicional. Si estás en el lado, habrá depuración, haz clic en el error en la barra de administración o usa el parámetro de URL, también documentado en la página de configuración.

Puedes hacerlo así, para enrutar el archivo single.php para diferentes tipos de publicaciones.
Tengo dos archivos single.php llamados single-product.php y single-blogs.php.
Ahora en el archivo single.php he escrito mi código a continuación para redirigir diferentes publicaciones basadas en el tipo de publicación personalizado
if (get_post_type('product'))
{
include (TEMPLATEPATH . '/single-product.php');
}
else
{
include (TEMPLATEPATH . '/single-blogs.php');
}
o
if (is_singular('product'))
{
include (TEMPLATEPATH . '/single-product.php');
}
else
{
include (TEMPLATEPATH . '/single-blogs.php');
}
