Así que esto puede parecer algo bastante servil, pero sígueme aquí.
Estoy tratando de agregar algo de lógica a través de la pre_get_posts
acción. Este es todo el objeto WP_Query que me dieron. (ver el final)
Cosas que he considerado usar:
is_single()
- demasiado amplia.is_singular()
- demasiado pronto para usar esto, yaget_queried_object()
que aún no está configurado.$query->single
propiedad - de nuevo demasiado amplia.$query->get('post_type')
- no establecido, ya que está usando laname
propiedad
es name
realmente el único indicador aquí?
WP_Query Object
(
[query] => Array
(
[page] =>
[name] => abcs-of-mental-health
)
[query_vars] => Array
(
[page] =>
[name] => abcs-of-mental-health
[error] =>
[m] => 0
[p] => 0
[post_parent] =>
[subpost] =>
[subpost_id] =>
[attachment] =>
[attachment_id] => 0
[static] =>
[pagename] =>
[page_id] => 0
[second] =>
[minute] =>
[hour] =>
[day] => 0
[monthnum] => 0
[year] => 0
[w] => 0
[category_name] =>
[tag] =>
[cat] =>
[tag_id] =>
[author_name] =>
[feed] =>
[tb] =>
[paged] => 0
[comments_popup] =>
[meta_key] =>
[meta_value] =>
[preview] =>
[s] =>
[sentence] =>
[fields] =>
[menu_order] =>
[category__in] => Array
(
)
[category__not_in] => Array
(
)
[category__and] => Array
(
)
[post__in] => Array
(
)
[post__not_in] => Array
(
)
[tag__in] => Array
(
)
[tag__not_in] => Array
(
)
[tag__and] => Array
(
)
[tag_slug__in] => Array
(
)
[tag_slug__and] => Array
(
)
[post_parent__in] => Array
(
)
[post_parent__not_in] => Array
(
)
)
[tax_query] =>
[meta_query] =>
[queried_object] =>
[queried_object_id] => 0
[post_count] => 0
[current_post] => -1
[in_the_loop] =>
[comment_count] => 0
[current_comment] => -1
[found_posts] => 0
[max_num_pages] => 0
[max_num_comment_pages] => 0
[is_single] => 1
[is_preview] =>
[is_page] =>
[is_archive] =>
[is_date] =>
[is_year] =>
[is_month] =>
[is_day] =>
[is_time] =>
[is_author] =>
[is_category] =>
[is_tag] =>
[is_tax] =>
[is_search] =>
[is_feed] =>
[is_comment_feed] =>
[is_trackback] =>
[is_home] =>
[is_404] =>
[is_comments_popup] =>
[is_paged] =>
[is_admin] =>
[is_attachment] =>
[is_singular] => 1
[is_robots] =>
[is_posts_page] =>
[is_post_type_archive] =>
[query_vars_hash] => f473ebf7f725c2627dc5fd9a1429f626
[query_vars_changed] =>
[thumbnails_cached] =>
)
pre_get_posts
(antes de ejecutar la consulta)?is_page()
se establece en elpre_get_posts
nivel. Si es así, y puedo verificar quepost_type
no esté configurado en query_vars, ¿supongo que es tan bueno como parece? Tan rotois_page
parece estar establecido.No sé si esto será útil:
Use $ wp_query-> posts (array) para verificar el tipo de publicación.
fuente
$wp_query->posts
variable se complete realmente. Gracias sin embargo!Después de algunas pruebas, veo que desafortunadamente es imposible obtener el tipo de publicación de cpt dentro del
pre_get_posts
gancho. Solois_page
funciona pero no se puede recuperar el tipo de publicación estándar ni el cpt.Si sólo dispone de página y posterior (sin CPT) un control de
is_single()
latrue
como medios de respuesta que tipo de entrada es posterior, porque return false para las páginas.Si también tiene CPT, me temo que debe realizar una consulta adicional . Lo más simple que puedo pensar es simplemente obtener la
post_type
columna donde el estado de la publicación es publicar y post_name es el requerido (omitiendo revisiones):Si desea verificar un tipo de publicación específico, puede escribir una etiqueta condicional personalizada que solo cuente las filas con un post_type dado y el nombre dado:
Por supuesto, esto es necesario
pre_get_post
, en cualquier gancho posterior puede usarget_post_type()
...fuente
Esto es lo que estoy usando, aunque está especializado para mi propia estructura de directorios.
El kilometraje puede variar. Los bits strpos donde verifico que los archivos están en un directorio pero no en otro necesitarían ser modificados para su compilación y probablemente podrían ser re-factorizados de manera más eficiente. Existen para recortar resultados por encima y por debajo de cierta estructura de directorios.
Ejecutar thelist () en el pie de página le dará una lista numerada de cada archivo de plantilla .php utilizado para compilar la vista actual. Es especialmente útil cuando se trata de un tema secundario que representa un componente misterioso.
fuente