web-dev-qa-db-de.com

Wie zeige ich Posts in einer dynamischen Tabelle an?

Ich verwende derzeit ein Plug-In namens SortTable Post. Es nimmt Ihre Beiträge automatisch entgegen und legt sie in einer Tabelle ab, die Ihnen gefällt. Es ist eine großartige Idee, aber das Problem ist, dass das Plug-in seit 2011 nicht mehr aktualisiert wurde und es zu viele Probleme damit gibt.

Hier ist ein Beispiel für SortTable Post >> http://chicagoexecutivecoaching.com/smartleadership/smart-leadership-archives/

Ich habe nach einer Alternative gesucht. Der Hersteller des TablePress-Plugins beantwortete dieselbe Frage mit:

Stattdessen sollten Sie eine Seitenvorlage mit einer benutzerdefinierten "Schleife" implementieren, in der Sie WordPress-Vorlagen-Tags verwenden, um die Ausgabe als HTML-Tabelle zu drucken. Sie können dieser Tabelle dann auch die Sortier-, Such- und Paginierungsfunktionen hinzufügen, indem Sie die DataTables-JavaScript-Bibliothek (www.datatables.net) manuell auf die Seite laden.

Das übersteigt momentan meine Fähigkeiten. Wie GENAU würdest du das machen? Ich würde eine Schritt-für-Schritt-Anleitung brauchen, um dies zu tun.

Hilfe wird sehr geschätzt :)

3
Jennifer Moore

Wenn Sie das tun möchten, was der TablePress-Autor empfohlen hat, müssen Sie zuerst eine benutzerdefinierte Seiten- (oder Beitragskategorie-) Vorlage erstellen - siehe Codex für PageTemplates - ich würde es nicht besser erklären als dort. :)

Dort müssten Sie eine benutzerdefinierte WP_Query- oder get_posts ()/get_pages () -Abfrage erstellen, um die Liste der benötigten Posts oder Seiten abzurufen (Sie müssen Kategorien, übergeordnete IDs oder ähnliches angeben) - siehe Codex für die Funktionen WP_Query, get_posts, get_pages.

Dann müssten Sie in die von Ihnen erstellte Vorlage Javascript und CSS aus dem DataTables-Plugin einbinden. Sie müssen es herunterladen und die Dateien zuerst irgendwo auf Ihrem Host ablegen.

Die Schleife könnte etwa so aussehen:

<?php $posts = get_posts(...) ?>
<table id="postTable">
<thead>
  <tr>
   <th>Title</th><th>Content</th>
  </tr>
</thead>
<tbody>
<?php foreach($posts as $post){?>
<tr>
<td><?php echo $post->post_title?></td><td><?php echo $post->post_content ?></td>
</tr>
<?php } ?>
</tbody>

Dann müssten Sie einen Javascript-Block hinzufügen, der DataTables für Ihre Tabelle initialisiert

<script type="text/javascript">
 jQuery(function(){
    jQuery('#postTable').dataTable();
 });
</script>

Wenn Sie alles richtig gemacht haben, wird eine sortierbare Tabelle in Ihrer Seitenvorlage generiert.

Eine einfachere Möglichkeit ist wahrscheinlich die Verwendung von http://wpdatatables.com plugin und das Erreichen der gleichen Ergebnisse, indem Sie einfach eine MySQL-Abfrage ausführen und den Shortcode auf Ihrer Seite einfügen. Hier ist ein Beispiel dafür, wie Sie mit einem vollständigen Tutorial genau das tun, wonach Sie suchen.

http://wpdatatables.com/list-wp-pages-wpdatatables-wordpress-table-plugin/

wir sehen uns!

3