1

ここでWordpressに少し問題があります。正直なところ、私は常に自分のサイトをゼロから設計し、ゼロから「コーディング」してきました。最近、私はそれについて良いことを聞いたので、WP で作業しようとしています。

WP は無料で多くのものを提供しているように見えます (たとえば、CATEGORIES に基づく動的な「ページ」)。ただし、車輪を再発明せずにこれらの景品を操作する方法を知りたい. たとえば、サブメニューに投稿カテゴリのリストを表示したいと思います。しかし、これらのカテゴリをカスタム フィールドで並べ替えたいと思います。

今、私は車輪を再発明し、手動でソートごとに新しいページを作成 (およびリンク) することができます (基本的には気にしません)。プラグインなどを介して。カスタムクエリに関するいくつかのチュートリアルを見てきましたが、それらは実装に達していません.新しいページを作成するか、どこかの関数にプラグインするかどうかを正確に伝えることなく、クエリを提供するだけです.

任意の入力をいただければ幸いです。

一番。

4

1 に答える 1

1

テーマのルート ディレクトリにある category.php テンプレートの先頭に、次を追加して、カスタム ソート フィールドをクエリに追加します。

<?php
function is_valid_custom_sort_field($field)
{
    // implementation left as an exercise for the questioner
    return true;
}
if ($_REQUEST['sort_custom_field'] && is_valid_custom_sort_field($_REQUEST['sort_custom_field'])) {
    query_posts($query_string . '&orderby='.$_REQUEST['sort_custom_field']);
}

参照: http://codex.wordpress.org/Function_Reference/query_posts

あなたのテーマに category.php がない場合は、以下の単純なデフォルト テンプレートをベースにします (同梱の Twentyten テーマからコピー):

<?php
/**
 * The template for displaying Category Archive pages.
 */

get_header(); ?>

        <div id="container">
            <div id="content" role="main">

                <h1 class="page-title"><?php
                    printf( __( 'Category Archives: %s', 'twentyten' ), '<span>' . single_cat_title( '', false ) . '</span>' );
                ?></h1>
                <?php
                    $category_description = category_description();
                    if ( ! empty( $category_description ) )
                        echo '<div class="archive-meta">' . $category_description . '</div>';

                /* Run the loop for the category page to output the posts.
                 * If you want to overload this in a child theme then include a file
                 * called loop-category.php and that will be used instead.
                 */
                get_template_part( 'loop', 'category' );
                ?>

            </div><!-- #content -->
        </div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
于 2011-01-18T23:07:27.083 に答える