我需要以临时方式存储当前URL,以便可以稍后使用(当我需要从搜索页面链接回该页面时)。
代码:
if(!is_page_template('search.php')) {
set_transient( 'last_url', $current_url, 60*60 );
}
因此该代码应保存当前页面的当前URL,直到我们进入搜索页面为止。
但是,一旦我单击搜索页面,'last_url'
将变为domain.tld / search。我不知道为什么在我明确拥有规则if(!is_page_template('search.php'))
但是,我的临时解决方案是检查URL中是否也有单词搜索,如果没有,则创建瞬态,例如:
if(!is_page_template('search.php')) {
if(stripos($current_url, 'search') === false) {
set_transient( 'shop_last_url', $current_url, 60*60 );
}
}
虽然此解决方案有效,但它是不好的解决方案,因为搜索页面具有不同的特性-例如,如果有多种语言...
我也尝试过使用cookie和会话,但没有任何运气。
答案 0 :(得分:0)
如果您的主题未使用默认的WordPress查询($ wp_query),则is_page_template,get_page_template_slug等功能将无法正常工作。
您可以在相应的核心代码here中看到它。
因此,在当前情况下,您可以改为使用全局模板变量。
if (basename($GLOBALS["template"])=='search.php'){
set_transient( 'last_url', $current_url, 60*60 );
}
或
if (basename(get_page_template())=='search.php'){
set_transient( 'last_url', $current_url, 60*60 );
}