Wie erstellt man eine alphanumerische Seitennummerierung mit Bereich?

Zur Zeit versuche ich, eine alphanumerische Seitennummerierung mit Bereichen für einen benutzerdefinierten Beitragstyp auf einem benutzerdefinierten Feld zu erstellen, wobei dieser Code von kathy genial verwendet wird. Ich habe alles außer dem Reichweitenaspekt davon bekommen. Wie AE, FH und so weiter. Jede Hilfe wäre großartig. Vielen Dank.

Solutions Collecting From Web of "Wie erstellt man eine alphanumerische Seitennummerierung mit Bereich?"

Wenn Sie diesen Code verwendet haben, haben Sie jetzt eine benutzerdefinierte Taxonomie namens “Glossar”. Um den Bereich anzuzeigen, benötigen Sie eine benutzerdefinierte Abfrage wie z

new WP_Query( array( 'tax_query' => array( array( 'taxonomy' => 'glossary', 'field' => 'slug', 'terms' => range('a', 'e') ) ) ) ); 

Das Problem ist, wie diese Abfrage mit einer URL durchgeführt werden soll ?

Sie können einen Endpunkt verwenden , etwas wie

 add_action('init', 'add_glossary_range_endpoint'); function add_glossary_range_endpoint() { add_rewrite_endpoint( 'letters', EP_ROOT ); } 

Wenn Sie den Link http://example.com/letters/ae/ besuchen, wird der Abfrage eine Variable “letters” hinzugefügt, die Sie abfangen und mit dem pre_get_posts Hook für Ihren Bereich verwenden pre_get_posts

 add_action('pre_get_posts', 'glossary_range_query'); function glossary_range_query( $query ) { if ( ! is_admin() && $query->is_main_query() && $query->get('letters') ) { $letters = explode('-', $query->get('letters') ); if ( count($letters) == 2 ) { $tax_query = array( 'taxonomy' => 'glossary', 'field' => 'slug', 'terms' => range($letters[0], $letters[1]) ); $query->set('tax_query', array($tax_query) ); $query->set('letters', NULL ); } } } 

Jetzt müssen Sie die Seite Einstellungen-> Permalinks in Ihrem Backend aufrufen und die Änderungen speichern, um die Umschreibregeln zu löschen. Dann sind Sie fertig.

Jetzt müssen Sie wahrscheinlich eine function erstellen, um den Link zu den Bereichsseiten anzuzeigen, etwa:

 function get_glossary_range_url( $from = 'a', $to = 'z' ) { return home_url( '/letters/' . $from . '-' . $to . '/' ); }