Cela peut donc sembler une chose assez subalterne, mais suivez-moi ici.
J'essaie d'ajouter de la logique à l' pre_get_posts
action. C'est tout l'objet WP_Query qui m'a été donné. (voir la fin)
Choses que j'ai envisagées d'utiliser:
is_single()
- trop large.is_singular()
- trop tôt pour l'utiliser, car ilget_queried_object()
n'est pas encore défini.$query->single
propriété - encore trop large.$query->get('post_type')
- non défini, car il utilise laname
propriété.
est name
vraiment le seul indicateur ici?
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
(avant l'exécution de la requête)?is_page()
c'est réglé aupre_get_posts
niveau. Si c'est le cas, et je peux vérifier qu'ilpost_type
n'est pas défini dans query_vars, je suppose que c'est aussi bon que possible? Tellement cassé.is_page
semble être réglé.Je ne sais pas si cela sera utile:
Utilisez $ wp_query-> posts (array) pour vérifier le type de publication.
la source
$wp_query->posts
variable ne soit réellement remplie. Merci quand même!Après quelques tests, je vois qu'il est malheureusement impossible d'obtenir le type de cpt à l'intérieur du
pre_get_posts
crochet. Seuls lesis_page
travaux mais pas le type de publication standard ni le cpt peuvent y être récupérés.Si vous n'avez que la page et le post (pas de cpt), un chèque
is_single()
avectrue
comme réponse signifie que le type de post est post, car il renvoie false pour les pages.Si vous avez également des CPT, je crains que vous ne deviez effectuer une requête supplémentaire . Le plus simple que je puisse penser est d'obtenir la
post_type
colonne où le statut du post est publier et le nom du post est celui requis (sauter les révisions):Si vous souhaitez vérifier un type de publication spécifique, vous pouvez écrire une balise conditionnelle personnalisée qui compte simplement les lignes avec un post_type et un nom donnés:
Bien sûr, cela est nécessaire
pre_get_post
, dans tout crochet ultérieur, vous pouvez utiliserget_post_type()
...la source
C'est ce que j'utilise, bien qu'il soit spécialisé pour ma propre structure de répertoires.
Le kilométrage peut varier. Les bits strpos où je vérifie que les fichiers se trouvent dans un répertoire mais pas dans un autre devraient être modifiés pour votre build et pourraient probablement être re-factorisés plus efficacement. Ils existent pour découper les résultats au-dessus et au-dessous d'une certaine structure de répertoires.
L'exécution de la liste () dans le pied de page vous donnera une liste numérotée de chaque fichier de modèle .php utilisé pour compiler la vue actuelle. C'est particulièrement utile lorsque vous traitez un thème enfant qui rend un composant mystère.
la source