Wordpress搜索结果按顺序排列

时间:2012-12-05 15:48:16

标签: php search wordpress-plugin e-commerce shopp

我的一个客户网站www.kevinsplants.co.uk没有按字母顺序显示搜索结果,我该如何按字母顺序排列结果?

我们正在使用Shopp插件,我相信它的插件正在产生结果!

干杯,布拉德

case "orderby-list":
            if (isset($Shopp->Category->controls)) return false;
            if (isset($Shopp->Category->smart)) return false;
            $menuoptions = Category::sortoptions();
            $title = "";
            $string = "";
            $default = $Shopp->Settings->get('default_product_order');
            if (empty($default)) $default = "title";

            if (isset($options['default'])) $default = $options['default'];
            if (isset($options['title'])) $title = $options['title'];

            if (value_is_true($options['dropdown'])) {
                if (isset($Shopp->Cart->data->Category['orderby'])) 
                    $default = $Shopp->Cart->data->Category['orderby'];
                $string .= $title;
                $string .= '<form action="'.esc_url($_SERVER['REQUEST_URI']).'" method="get" id="shopp-'.$Shopp->Category->slug.'-orderby-menu">';
                if (!SHOPP_PERMALINKS) {
                    foreach ($_GET as $key => $value)
                        if ($key != 'shopp_orderby') $string .= '<input type="hidden" name="'.$key.'" value="'.$value.'" />';
                }
                $string .= '<select name="shopp_orderby" class="shopp-orderby-menu">';
                $string .= menuoptions($menuoptions,$default,true);
                $string .= '</select>';
                $string .= '</form>';
                $string .= '<script type="text/javascript">';
                $string .= "jQuery('#shopp-".$Shopp->Category->slug."-orderby-menu select.shopp-orderby-menu').change(function () { this.form.submit(); });";
                $string .= '</script>';
            } else {
                if (strpos($_SERVER['REQUEST_URI'],"?") !== false) 
                    list($link,$query) = explode("\?",$_SERVER['REQUEST_URI']);
                $query = $_GET;
                unset($query['shopp_orderby']);
                $query = http_build_query($query);
                if (!empty($query)) $query .= '&';

                foreach($menuoptions as $value => $option) {
                    $label = $option;
                    $href = esc_url($link.'?'.$query.'shopp_orderby='.$value);
                    $string .= '<li><a href="'.$href.'">'.$label.'</a></li>';
                }

            }
            return $string;
            break;

3 个答案:

答案 0 :(得分:0)

http://wordpress.org/extend/plugins/sort-searchresult-by-title/

这是一个似乎可以做你想要的插件。

答案 1 :(得分:0)

您需要编辑搜索页面的模板文件并添加到搜索查询参数orderby title,而不是按发布时间的默认排序

答案 2 :(得分:0)

编辑核心代码不是一个好主意。幸运的是,没有必要。您可以编辑/创建自己的模板文件collection-search.php,并以您想要的任何方式设置样式。

有关模板文件here的更多信息。