1

カスタム投稿タイプを使用して、ページにいくつかの情報を表示しています。

既存のページにカスタム投稿タイプのリストを表示するWordpressカスタム投稿タイプ

データにフィルタリング、並べ替え、検索機能を追加する方法はありますか?

Paginationを「domain.com/page/2」で動作させることができました

 $the_query = new WP_Query(array('post_type' => 'custom_post_type', 'posts_per_page' => 25, 'paged' => $paged, 'orderby'=>'title', 'order' => 'ASC'));

jquery DataTable(http://datatables.net/)を使用して並べ替え、ページ付け、検索を追加していましたが、1000以上のレコードでDatatableを使用すると、処理が非常に遅くなり、メモリ不足に関するphpエラーが表示されることがあります。これは、Wordpressで適切に行う方法を見つけるまで、常に暫定的な解決策でした。

4

2 に答える 2

0

データを並べ替えるためのjQueryツールについて言及されていますが、これはデータベースからのデータには適していません。jQueryソートツールは、テーブルを読みやすくし、ユーザーがページに既に表示されているデータを操作できるようにするために作成されています。データベースの場合、必要なデータのみをフェッチし、ページ内のすべてを取得せずに、要素を並べ替えまたはフィルター処理してビューから除外するという考え方があります(ただし、ページ内にあるため、より重く、ダウンロードに時間がかかります。処理が難しいなど)。カスタム投稿タイプのページ付けを実装できたので、問題ありません。ここで、検索フォームを含めるだけです。デフォルトのWordPress検索フォーム(searchform.php)は次のようになります:

            <form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
                <div><label class="screen-reader-text" for="s">Search for:</label>
                    <input type="text" value="" name="s" id="s" />
                    <input type="submit" id="searchsubmit" value="Search" />
                </div>
            </form>

検索をカスタム投稿タイプに制限するには、それに小さな行を追加する必要があります。

                    <input type="hidden" name="post_type" value="name_of_your_post_type" />

だからそれはこのようになります:

            <form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
                <div><label class="screen-reader-text" for="s">Search for:</label>
                    <input type="text" value="" name="s" id="s" />
                    <input type="submit" id="searchsubmit" value="Search" />
                    <input type="hidden" name="post_type" value="name_of_your_post_type" />
                </div>
            </form>
于 2012-12-12T22:55:35.567 に答える
0

バラカダムに感謝します。まだ検索を試していませんが、順序と順序を理解することができました

$_GET を使用して order と orderby の値を取得し、それらの変数を

于 2012-12-13T07:06:13.747 に答える