custom-post-types – ¿Cómo obtener el tipo de publicación personalizada de una página de archivo?

Pregunta:

En mi sitio web tengo tres tipos de publicaciones personalizadas: scripts, escenas y complementos. Al visitar la página de archivo de un solo tipo de publicación (es decir, al ir a mysite.com/plugins), verá correctamente todas las publicaciones de ese tipo.

En archive.php, ¿cómo puedo saber qué tipo de publicación personalizada está viendo el usuario en este momento?

Intenté lo siguiente:

<?php 
    global $post; 
    $postTypeLabels = get_post_type_labels(get_post_type_object($post)); 
    echo var_export($postTypeLabels); 
?>

Pero estoy recibiendo esto:

Post name is stdClass::__set_state(
  array( 'name' => 'Posts', 
    'singular_name' => 'Post', 
    'add_new' => 'Add New', 
    'add_new_item' => 'Add New Post', 
    'edit_item' => 'Edit Post', 
    'new_item' => 'New Post', 
    'view_item' => 'View Post', 
    'search_items' => 'Search Posts', 
    'not_found' => 'No posts found.', 
    'not_found_in_trash' => 'No posts found in Trash.', 
    'parent_item_colon' => NULL, 
    'all_items' => 'All Posts', 
    'menu_name' => 'Posts', 
    'name_admin_bar' => NULL, 
  )
)

Supongo que, dado que estoy en una página de archivo, $ post no es correcto.

PD: Sé que puedo crear un archivo-plugins.php para el archivo de complementos. Desafortunadamente, he instalado un tema que, hasta donde yo sé, evita eso. Entonces esta no es una opción.

Respuesta:

Hay varias formas de hacer esto. Poner:

var_dump($wp_query->query,get_queried_object()); die;

En su archive.php y debería ver dos de esas formas.

$wp_query->query tendrá post_type componente post_type para tipos de publicaciones personalizadas. Eso no va a estar allí para post tipos de envíos. get_queried_object volverá un poco de datos para tipos de envíos personalizados, pero nulo para post Tipo de puesto.

También hay algunas etiquetas de plantilla relacionadas que pueden ayudar. is_post_type_archive viene a la mente.

Entre ellos, debe tener la información que necesita para armar cualquier lógica que necesite. No está claro a partir de su pregunta cuál se supone que es el resultado final, por lo que realmente no puedo escribir mucho.

Ya que nombró específicamente archive.php eso es lo que probé. Es posible que necesite un código diferente para alguna otra plantilla, especialmente con get_queried_object que devuelve información muy diferente según el contexto.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım