web-dev-qa-db-ja.com

動的テーブルに投稿をどのように表示しますか?

私は現在SortTable Postというプラグインを使用しています。それは自動的にあなたの投稿を受け取り、あなたが好きなテーブルにそれらを入れます。それは素晴らしいアイデアですが、問題は2011年以来プラグインが更新されていないということです、そしてそれにはあまりにも多くの問題があります。

これはSortTable Postの例です>> http://chicagoexecutivecoaching.com/smartleadership/smart-leadership-archives/ /

私は代わりを探しています。 TablePressプラグインのメーカーは、同じ質問をして誰かに答えました。

代わりに、カスタムの "The Loop"を使用してページテンプレートを実装することを検討する必要があります。この場合、WordPressテンプレートタグを使用して出力をHTMLテーブルとして印刷します。その後、手動でDataTables JavaScriptライブラリー(www.datatables.net)をページにロードすることによって、ソート/検索/ページ付け機能をそのテーブルに追加することもできます。

今のところ私の能力を少し超えています。どれくらい正確にこれをしますか?これを行うには段階的なガイドが必要です。

助けていただければ幸いです:)

3
Jennifer Moore

TablePressの作者が推奨することをしたいのであれば、最初にカスタムページ(または投稿カテゴリ)テンプレートを作成する必要があります - Page_TemplatesのCodexを参照してください - それ以上の説明はしません。 :)

必要な投稿やページのリストを取得するには、カスタムWP_Query、またはget_posts()/ get_pages()クエリを作成する必要があります(カテゴリ、親ID、またはこのようなものを指定する必要があります)。 WP_Query、get_posts、get_pages関数のコーデックス。

次に、作成したテンプレートの中に、DataTablesプラグインのjavascriptとCSSを含める必要があります。あなたはそれをダウンロードし、あなたのホスト上のどこかにファイルを置く必要があるでしょう、もちろん。

ループは次のようになります。

<?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>

それからあなたはあなたのテーブルのためにデータテーブルを初期化するJavaScriptブロックを追加する必要があるでしょう

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

あなたが正しいことをすべてやったなら、それはあなたのページテンプレートの中にソート可能なテーブルを生成するでしょう。

もっと簡単な方法は、おそらく http://wpdatatables.com pluginを使用して、MySQLクエリを実行してショートコードをページに配置するだけで同じ結果を得ることです。これはあなたが完全なチュートリアルで探していることを正確にやるための例です。

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

またね!

3