使用HTML下拉框对WordPress中的自定义字段进行排序

时间:2011-04-23 12:51:44

标签: wordpress sorting drop-down-menu field

我有一个网站(位于here),我想做些什么来改善人们搜索和查看不同评论的方式。

我考虑过引入一种基于评分搜索帖子的方法。我目前有一个类别,其自定义字段标题为“评级”。自定义字段中的每个值都是1到5之间的整数。

这是测试类别(http://enoda.co.uk/category/ipad-2/ipad-reviews/ipad-utilities/

我想知道如何在星级评分从1到5的类别的帖子上方引入一个下拉菜单。此外,我希望它能够吸引用户进行评分。< / p>

任何帮助都会很棒,
最好的问候,
千斤顶

1 个答案:

答案 0 :(得分:0)

杰克,

这是一个有点复杂的问题,因为您的WP安装中有许多区域需要解决问题的地址。我会指出你正确的方向,但我不认为这将是你的完整答案。

首先,下拉列表。既然您知道只需要显示评级选项的下拉列表,您就可以轻松地对其进行硬编码。由于它是在您自己控制的自定义字段中,只有您/您的同事设置,您才会知道该字段中的内容并且可以安全地对此进行硬编码。或者,我会将评级设置为带有“1星”,“2星”等术语的自定义分类,然后您可以根据此分类法动态构建下拉列表。但是,既然它是在自定义领域,我会使用这样的东西:

<form action="rating-search.php" method="GET">
    <select name="rating-search" id="rating-search">
        <option value="1">1 Star</option>
        <option value="2">2 Stars</option>
        <option value="3">3 Stars</option>
        <option value="4">4 Stars</option>
        <option value="5">5 Stars</option>
    </select>
    <input id="rating-search-submit" name="rating-search-submit" value="Search" />
</form>

现在,我假设你可以处理这些数据的提交。在接收此数据的页面上(您可以使用模板页面完成此操作),您需要修改wp_query以仅搜索元值为rating = {input value}的帖子。您将需要类似于以下的代码:

$query = new WP_Query();
$query->query(
    array(
        'meta_query' => array(
            array(
                'key' => 'rating', // Insert the name of the meta key here
                'value' => $_POST['rating-search'], // This is the rating you are matching
                'compare' => '=',
                'type' => 'NUMERIC'
            )
        )
    )
);

if($query->have_posts())
{
    while($query->have_posts())
    {
        $query->the_post();
        global $post;

        //Do normal loop business here
    }
}

该查询将帮助您搜索自定义字段设置为所需值的帖子。请注意,meta_query参数仅适用于WP 3.1及更高版本。这是一个超级强大的功能,值得单独更新到3.1。有关WP_Query类的功能的更多信息,请访问:http://codex.wordpress.org/Function_Reference/WP_Query

我知道您不能只复制并粘贴此代码以获得您想要的内容,但我希望这能为您提供一些有关如何更接近理想结果的建议。祝你好运!