web-dev-qa-db-fra.com

Quand 'is_post_type_archive ()' retourne-t-il vrai?

Je visite le lien de la page d'archive

http://src.wordpress-develop.dev/2016/

ou

http://src.wordpress-develop.dev/category/Markup/,

sur l'une des pages is_post_type_archive() return false.

J'ai ajouté is_post_type_archive() dans le fichier de modèle archive.php.

J'ai essayé d'insérer is_post_type_archive() dans et en dehors de la boucle, utilisez wp_reset_query() avant is_post_type_archive(), mais tous renvoient false.

Comment faire pour que la fonction is_post_type_archive() renvoie true?

1
linjie

Quand 'is_post_type_archive ()' retourne-t-il vrai?

is_post_type_archive() renvoie true pourcustom post type archiveset false pour les publications par défaut.

Utilisez is_archive() pour vérifier les publications par défaut.

2
bravokeyl

http://src.wordpress-develop.dev/category/Markup/ ou un autre lien n’est pas un page d’archive de type publication, c’est un page d’archive. page d'archive n'est pas un page d'archive de type post. page d'archive lien d'accès comme ci-dessus, mais page d'archive de type publication lien d'accès comme: http://src.wordpress-develop.dev/(post-type)

remplacez le type (post-type) par le type vraiment post.

Il n'y a pas de pages d'archives de type de publication pour les types de publication intégrés, uniquement pour types de publication personnalisés} lorsque has_archive est défini (je ne peux pas le prouver). Donc, seulement lorsque vous créez un type de message personnalisé comme ceci:

add_action( 'init', 'create_post_type' );
function create_post_type() {
  register_post_type( 'acme_product',
    array(
      'labels' => array(
        'name' => __( 'Products' ),
        'singular_name' => __( 'Product' )
      ),
      'public' => true,
      'has_archive' => true,
    )
  );
}

vous pourrez alors accéder à votre page d'archive de type courrier personnalisée via le lien URL-site/site-acme-produit, le fichier de modèle archive- {post_type} .php ou archive.php soit utilisé. Dans le contexte, dans archive- {post_type} .php _ ou archive.php la fonction is_post_type_archive() renvoie true, sinon elle renvoie toujours false.

is_post_type_archive (string|array $post_types = '' )

La requête concerne-t-elle une page d'archive de type publication existante?

1
linjie