Was ist der früheste Hook, mit dem Sie Huckepack nehmen können, um Begriffe / Taxonomie für eine Sammlungsansicht zu überprüfen?

Ich versuche, eine bedingte Logik get_the_terms( $post->ID, 'product_cat' ) basierend darauf, ob get_the_terms( $post->ID, 'product_cat' ) den Begriff ‘Photographs’ enthält. Momentan benutze ich den wp Hook, aber das scheint nicht zu laufen, bis die primäre Query schon gelaufen ist .. was ich ändern muss.

Das muss gemacht werden, weil ich im Prinzip zwei unterschiedliche Frontend-Stores benötige, aber natürlich muss alles im Back-End-Woo-Admin zusammen sein.

Solutions Collecting From Web of "Was ist der früheste Hook, mit dem Sie Huckepack nehmen können, um Begriffe / Taxonomie für eine Sammlungsansicht zu überprüfen?"

Sie werden die Codex Action Reference finden – obwohl sie nicht alles auflistet, gibt sie einen guten Überblick über die Aktionsreihenfolge, die Ihnen helfen kann, die richtige Aktion zu finden, wenn die von Ihnen verwendete function zu spät ausgeführt wird.

In Ihrem Fall wird wp zwar ausgeführt, nachdem die Abfrage ausgeführt wurde, aber wenn Sie sich diese Liste pre_get_posts – je nachdem, welche Logik Sie pre_get_posts möchten -, wäre pre_get_posts eine gute Wahl für Sie. Dies ist eine häufig verwendete Aktion, mit der Sie fast vollständig Änderungen an der Abfrage vornehmen können, bevor sie ausgeführt wird.

Wenn Sie Ihren Code nicht sehen, ist es etwas schwierig, genau vorauszusehen, was Sie damit erreichen wollen, aber ich vermute, Sie sind auf etwas wie das folgende:

 add_action( 'pre_get_posts', 'wpse202063_photographs_term' ); function wpse202063_photographs_term( $query ){ if( ! is_admin() && $query->is_main_query() && is_singular( 'product' ) ){ $post_object = get_page_by_path( $query->query['name'], 'OBJECT', 'product' ); if( has_term( 'photographs', 'product_cat', $post_object ) ){ // modify the query here as you need, using $query->set() } } } 

Wenn Sie einen einzelnen Beitrag des Post-Typs “Produkt” anzeigen, sollten Sie das $query Objekt ändern können, um das zu ändern, was Sie benötigen. 1

Es ist wichtig zu beachten, dass das obige Snippet nur vorläufig ist – dies ist möglicherweise nicht der schnellste Weg, um das zu tun, was Sie tun möchten; Es geht auch davon aus, dass Sie hübsche Permalinks verwenden.

1 Beachten Sie, dass pre_get_posts $query Referenz übergibt. pre_get_posts ist es nicht notwendig, $wp_query zu globalisieren, um Ihre Änderungen vorzunehmen – Sie können sie direkt mit $query->set( 'query_var', 'value' ); – Offensichtlich ersetzt ‘query_var’ durch die Var, die Sie ändern möchten und den ‘Wert’ mit dem, was Sie festlegen möchten (Sie können auch ein Array verwenden).