我有一个网站(位于这里),我想做一些事情来改善人们搜索和查看不同评论的方式。
我考虑过引入一种基于评分的帖子搜索方法。我目前有一个类别,其中有自定义字段与字段标题"评级"。每个自定义字段的值为1 ~ 5之间的整数
这是测试类别(http://enoda.co.uk/category/ipad-2/ipad-reviews/ipad-utilities/)
我想知道我该如何在类别的帖子上方的某个地方引入一个下拉菜单,从1到5的星级。此外,我希望它能把用户带到有这个评级的评论中。
任何帮助都将是伟大的,
致以最诚挚的问候,
杰克
杰克
这是一个有点复杂的问题,因为在您的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.
我知道你不能只是复制粘贴这段代码来得到你想要的,但我希望这能给你一些想法,你可以做些什么来更接近你想要的结果。好运!