Beiträge auf neuer Seite filtern

Ich möchte Filter für Beiträge auf der Taxonomie-Seite erstellen. Ich möchte neue Seiten für diese Filter erstellen und ihnen nur Links auf der Taxonomieseite hinzufügen, aber ich muss die URL-Struktur speichern. Zum Beispiel habe ich derzeit: http://example.com/custom_taxonomy/term/child_term

Ich möchte zum Beispiel Beiträge nach Preis sortieren und möchte die nächste URL dafür haben: http://example.com/custom_taxonomy/term/child_term/low-price http://example.com/custom_taxonomy/term / child_term / hoher Preis

Ist es möglich?

Solutions Collecting From Web of "Beiträge auf neuer Seite filtern"

Sie können dies mit einer Kombination aus Umschreibendpunkten und der Aktion pre_get_posts .

Zuerst muss Ihre Taxonomie mit einigen speziellen rewrite Argumenten registriert werden, um dies zu ermöglichen, insbesondere ep_mask :

 register_taxonomy( 'customtax', 'posttype', array( 'rewrite' => array( 'slug' => 'custom-tax', 'hierarchical' => true, 'ep_mask' => EP_ALL ), // other args... ) ); 

Sie können dann einen Endpunkt für Ihren Filter hinzufügen, auch für die Aktion init :

 add_rewrite_endpoint( 'low-price', EP_ALL ); 

Beachten Sie, dass Umschreibungsregeln an diesem Punkt gelöscht werden müssen, damit der neue Endpunkt existiert.

Der letzte Schritt besteht dann darin, pre_get_posts zu haken und den low-price Endpunkt zu ermitteln und die Meta-Argumente auf die Abfrage anzuwenden:

 function wpd_filter_my_tax( $query ) { if ( $query->is_tax( 'customtax' ) && $query->is_main_query() && isset( $query->query_vars['low-price'] ) ) { $query->set( 'meta_key', 'price' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'wpd_filter_my_tax' );