执行搜索后将查询字符串保留在url中

时间:2018-07-01 作者:feedmeimhungry

我不确定我的标题是否正确,但下面是我要做的。

其作用:用户访问我的网站时,会在url后附加一个活动查询字符串,如www.mywebsite。com?name=我的名字。我写了一个脚本,以确保QS在点击网站时会跟踪他们,但当他们使用搜索功能时,url会剥离QS,最终看起来像这样:www.mywebsite。com?s=搜索项。

我想要的是:即使在搜索时也要保留QS,这样看起来就像这样:www.mywebsite。com?s=搜索术语(&s);名称=myName

1 个回复
SO网友:Krzysiek Dróżdż

很难说在您的情况下如何准确地执行,因为我们不知道您的表单是如何生成的。。。但一般来说,您必须向该表单添加隐藏的输入。

因此,如果您使用searchform。在主题中添加php,然后向其中添加类似的内容:

<input type="hidden" name="name" value="<?php echo esc_attr( $_GET[\'name\'] ); ?>" />
如果没有searchform。主题中的php模板get_search_form 函数,则必须使用如下过滤器:

function add_custom_name_to_search_form( $form ) {
    $field = \'<input type="hidden" name="name" value="\'. esc_attr( $_GET[\'name\'] ) .\'" />\'
    return str_replace( \'</form>\', $field . \'</form>\', $form );
}
add_filter( \'get_search_form\', \'add_custom_name_to_search_form\' );
但是。。。我的方法会有点不同。。。如果用户在URL中带有某个参数,而我想在他访问页面时使用该参数,我会将该值存储在cookie中。。。

function process_name_cookie() {
    if ( isset($_GET[\'name\']) ) {
        setcookie( \'myname\', $_GET[\'name\'], 0, \'/\' );
    }
}
add_action( \'wp\', \'process_name_cookie\' );
然后您可以使用该cookie,这样就不必修改任何链接或表单。

结束

相关推荐

Twenty Seventeen search error

每当我在wordpress网站上搜索某个内容时,我都会得到以下错误:Fatal error: Uncaught Error: Call to undefined function get_exID() in /var/www/html/wp-content/themes/twentyseventeen/functions.php:360 Stack trace: #0 /var/www/html/wp-includes/class-wp-hook.php(298): twen