0

我的一个客户网站 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;
4

3 回答 3

0

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

于 2012-12-05T16:21:05.903 回答
0

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

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

于 2012-12-05T15:51:40.693 回答
0

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

这里有更多关于模板文件的信息。

于 2015-05-26T10:46:01.443 回答