我需要暂时存储当前URL, 以便可以稍后使用(当我需要从搜索页面链接回该页面时)。
【WordPress-在transient中存储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和会话, 但没有任何运气。
#1如果你的主题未使用默认的WordPress查询($ wp_query), 则is_page_template, get_page_template_slug等功能将无法正常使用。
你可以在此处的相应核心代码中看到它。
因此, 对于你当前的情况, 你可以改为使用全局模板变量。
if (basename($GLOBALS["template"])=='search.php'){
set_transient( 'last_url', $current_url, 60*60 );
}
or
if (basename(get_page_template())=='search.php'){
set_transient( 'last_url', $current_url, 60*60 );
}
推荐阅读
- WordPress style.css损坏
- 所有主题的WordPress静态主页
- #yyds干货盘点#算法给小码农二叉树OJ淬体
- #私藏项目实操分享#Java深层系列「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!
- #yyds干货盘点#算法给小码农归并排序列阵
- Flutter 专题40 日常问题小结#yyds干货盘点#
- 10道不得不会的Java基础面试题
- #私藏项目实操分享#分布式技术专题「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
- Springboot2+Quartz+debug源码教程#yyds干货盘点#