Cómo detectar si es is_404(), is_page() o cualquier otra condición en WordPress
¿Existe alguna manera de obtener un output como este:
echo $current_type;
y que me devuelva:
is_404()
o is_page()
o cualquier otra función is_blabla()

is_404()
y is_page()
son simplemente condicionales que verifican si existe una condición. Por ejemplo, is_404()
simplemente comprueba si la página actual es un error 404 y devuelve true
si es así, o false
en caso contrario.
NOTA MUY IMPORTANTE: Las etiquetas de consulta condicional no funcionan antes de que se ejecute la consulta. Antes de eso, siempre devuelven false
Puedes obtener objetos de la página actual simplemente haciendo un var_dump
en get_queried_object()
, por ejemplo:
<?php
$queried_object = get_queried_object();
var_dump( $queried_object );
?>
EDITADO
Todos estos condicionales se establecen en la clase WP_Query
, y luego se encapsulan por separado en una función en wp-includes/query.php
. Por ejemplo, is_404()
es simplemente un envoltorio para $wp_query->is_404();
697 /**
698 * ¿La consulta es un error 404 (no devuelve resultados)?
699 *
700 * @see WP_Query::is_404()
701 * @since 1.5.0
702 * @uses $wp_query
703 *
704 * @return bool
705 */
706 function is_404() {
707 global $wp_query;
708
709 if ( ! isset( $wp_query ) ) {
710 _doing_it_wrong( __FUNCTION__, __( 'Las etiquetas de consulta condicional no funcionan antes de que se ejecute la consulta. Antes de eso, siempre devuelven false.' ), '3.1' );
711 return false;
712 }
713
714 return $wp_query->is_404();
715 }
