Come rilevare se is_404() o is_page() o altre condizioni in WordPress?
Esiste un modo per ottenere un output come questo:
echo $current_type;
che mi restituisca:
is_404()
oppure is_page()
o qualsiasi altra condizione is_blabla()

is_404()
e is_page()
sono semplicemente dei condizionali che verificano se una condizione esiste. Ad esempio, is_404()
verifica semplicemente se la pagina corrente è una pagina 404 e restituisce true in caso di successo e false in caso di fallimento.
AVVISO MOLTO IMPORTANTE: I tag di query condizionali non funzionano prima che la query venga eseguita. Prima di allora, restituiranno sempre false
Puoi ottenere gli oggetti dalla pagina corrente semplicemente eseguendo un var_dump
su get_queried_object()
come nell'esempio seguente:
<?php
$queried_object = get_queried_object();
var_dump( $queried_object );
?>
MODIFICA
Tutti questi condizionali sono impostati nella classe WP_Query
, e poi separatamente incapsulati in una funzione in wp-includes/query.php
. Ad esempio, is_404()
è semplicemente un wrapper per $wp_query->is_404();
697 /**
698 * La query è un 404 (non restituisce risultati)?
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__, __( 'I tag di query condizionali non funzionano prima che la query venga eseguita. Prima di allora, restituiranno sempre false.' ), '3.1' );
711 return false;
712 }
713
714 return $wp_query->is_404();
715 }
