WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

it:Riferimento funzioni/is post type archive

Descrizione

Controlla se la query in esecuzione è per una pagina di archivio di un dato tipo di post.

Utilizzo

<?php is_post_type_archive$post_types ); ?>

Parametri

$post_types
(array/string) (opzionale) Tipo di post o array di tipi di post da controllare.
Default: Nessuno

Valori restituiti

(boolean) 
Se la query in esecuzione è per una pagina di archivio di un dato tipo di post.

Esempi

Determinare se la pagina corrente è un archivio creato da un tipo di post personalizzato e stampare il titolo di tale tipo di post:

<?php
if ( is_post_type_archive() ) {
    ?>
    <h1><?php post_type_archive_title(); ?></h1>
    <?php
}
?>

Note

La funzione restituisce false per una pagina come /category/uncategorized/?post_type=custom. Restituisce true solo per una pagina come /?post_type=custom. In altre parole, non controlla l'esistenza del parametro di query post_type, ma verifica se ci troviamo nell'archivio di tutti i post di un dato tipo. Se invece ciò che serve è il primo caso, si veda get_query_var('post_type').

A seconda di quando questa funzione viene richiamata, può o meno essere eseguita da nav_menu_item. Si consideri il seguente codice di esempio:

<?php
function some_func( $query ){
    if ( is_post_type_archive('my_custom_post_type') ) {
         // Fare qualcosa
    }
}
add_action('pre_get_posts','some_func');
?>

"Fare qualcosa" può o meno essere eseguito nel menu, a seconda che il tema usi o meno i menu di navigazione. Il corretto utilizzo sarebbe:

<?php
function some_func( $query ){
    if ( is_post_type_archive('my_custom_post_type') 
         && ! empty( $query->query['post_type']  == 'my_custom_post_type' ) {
         // Fare qualcosa
    }
}
add_action('pre_get_posts','some_func');
?>

Log delle modifiche

File sorgente

is_post_type_archive() si trova in wp-includes/query.php.

Correlati

Tipi di post: register_post_type(), add_post_type_support(), remove_post_type_support(), post_type_supports(), post_type_exists(), set_post_type(), get_post_type(), get_post_types(), get_post_type_object(), get_post_type_capabilities(), get_post_type_labels(), is_post_type_hierarchical(), is_post_type_archive(), post_type_archive_title()

Si veda anche l'indice di Riferimento funzioni e l'indice di Tag dei template.