1

这里的 Wordpress 有点问题。老实说,我总是从头开始设计我的网站,并从头开始“编码”。最近我一直在尝试与 WP 合作,因为我听说过它的好消息。

看起来 WP 免费为您提供了很多东西(例如,基于 CATEGORIES 的动态“页面”)。但是,我想知道如何在不重新发明轮子的情况下操纵这些免费赠品。例如,我想让我的 SUB-MENU 显示帖子类别列表。但我想按自定义字段对这些类别进行排序。

现在,我可以重新发明轮子并为每种类型手动创建(并链接到)一个新页面,依此类推,(我基本上不介意这样做)但是,我希望有办法解决这个问题通过插件或其他方式。我已经看过几个关于自定义查询的教程,但它们没有实现——它们只是给出查询,而没有确切地说明是创建一个新页面还是将其插入某个函数中。

任何输入将不胜感激。

最好的。

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,这里有一个简单的默认模板作为它的基础(复制自包含的 20 主题):

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