it-swarm.com.de

Alle Beiträge anzeigen, die mit dem angegebenen Buchstaben beginnen?

Ich versuche, ein Wordpress-basiertes Wörterbuch zu erstellen. Es wird im Grunde 26 Seiten haben (eine für jeden Buchstaben):

A B C ... X Y Z

Und auf jeder Seite werden alle Beiträge angezeigt, die mit dem angegebenen Buchstaben beginnen. Nach dem Öffnen der Seite "A" sollte Folgendes angezeigt werden:

überrascht

abakus

abalone

(...) Azure

Anfangs dachte ich über benutzerdefinierte Beitragstypen nach, aber das Erstellen und Verwalten von 26 benutzerdefinierten Beitragstypen klingt wie ein Overkill.

Was ist die effizienteste Methode, um solche Posts zu sortieren? Datenbankabfrage, Schleife mit PHP aufteilen? Ich strebe 1000 Posts an (ja, es muss Wordpress sein :)).

11
Wordpressor

Verwenden Sie keine Beitragstypen, sondern Taxonomiebegriffe!

Stellen Sie beim Speichern die Objektbegriffe in einer A-Z-Taxonomie mit dem Anfangsbuchstaben des Beitragstitels ein. Achten Sie darauf, Groß- oder Kleinschreibung zu erzwingen, um die Konsistenz zu gewährleisten. Stellen Sie sicher, dass Sie Begriffe für jeden Buchstaben des Alphabets und einen Begriff für Zahlen und andere nicht alphanumerische Symbole erstellen.

Dies sollte schneller sein als das Abfragen des ersten Buchstabens jedes Posttitels, und es gibt Ihnen eine Taxonomie, mit der Sie mehr Dinge tun können, wie Tag-Clouds oder Term Lister-Widgets! Es ist auch eine viel schnellere Methode, um festzustellen, welche Buchstaben und wie viele Posts zugeordnet sind, ohne dass die Datenbank manuell gezählt werden muss, und Sie können standardmäßige WordPress-Term-APIs verwenden, um komplexere Abfragen durchzuführen, z. B. Posts, die mit Vokalen beginnen

8
Tom J Nowell

Wenn Sie nicht mit der bevorzugten Methode für Taxonomiebegriffe arbeiten möchten, gehen Sie wie folgt vor:

<ul class="posts">
         <?php 
         global $wpdb; 
         $request = "a" // could be any letter you want
         $results = $wpdb->get_results(
                "
                SELECT * FROM $wpdb->posts
                WHERE post_title LIKE '$request%'
                AND post_type = 'post'
                AND post_status = 'publish'; 
                "
         ); 
         if ( $results ) 
         {
            foreach ( $results as $post ) 
            {
                setup_postdata ( $post ); 
                ?> 
                <li>
                    ... loop stuff here (the_title, the_permalink) ... 
                </li>
                <?php 
            }
         } 
         else 
         {
            ?> 
            <div class="alert">No clubs found for that letter. Please try again, or use the search at the top.</div>
            <?php
         }
         ?>
    </ul>
4
21zna9

Überprüfen Sie diesen Artikel hier: query_post nach Titel?

Oder Sie können einen Pre-Save-Helfer mit PODS 2-Framework erstellen und den ersten Buchstaben des Post-Titels in einem Feld speichern und die einfache WHERE-Bedingung verwenden.

Oder erstellen Sie ein Dropdown-Menü (ein anderer Pod/Inhaltstyp) mit allen Buchstaben und erstellen Sie eine Beziehung zu Ihrem vorhandenen Inhaltstyp für Posts (in Pods 2 ist dies möglich). Bevor Sie den Wörterbuchbegriff speichern, wählen Sie aus dem Dropdown-Feld den Buchstaben aus, den Sie diesem Begriff zuweisen möchten.

In Pods 2 können Sie das zusätzliche Feld einem vorhandenen Beitragsinhaltstyp hinzufügen. Dieses Plugin/Framework, das so etwas wie CCK + Views in der Drupal-Welt ist, ist wirklich fantastisch.

Pods 2 ist ein sehr hilfreiches Plugin.

1
Derfder