未使用查询字符串的URL不再起作用

时间:2021-06-30 作者:trundles

我有几个网站,在那里我编写了一个自定义功能来从数据库中获取数据,这些都是旧网站。该页面通过抓取url的最后一部分并将其转换为变量“item”来获取信息

实例com/item/12345/

这过去是可行的,但现在不行了。有些东西正在剥离url的最后一部分,这只是加载示例。com/项目/

将url更改为的解决方法

实例com/项目/?项目=12345

已“修复”它,但我宁愿使用其他url。有人能解释一下这里发生了什么事吗?我相信这发生在几个版本之前的wordpress更新上。

**编辑以添加一些代码**

这在主题的标题中。php文件

我使用插件pod创建自定义表,所以我使用它的db查询功能

    $itemURL = \'https://\'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    $bits = explode("item/",$itemURL);
    $showItem = rtrim($bits[1],"/");

    $customPod = pods(\'custom_jewellery\');
    $params = array(\'where\' => \'id = "\'.$showItem.\'"\');
    $customPod->find($params);
    while($customPod->fetch()):
       $customItem[\'id\'] = $customPod->field(\'id\');
    endwhile;

1 个回复
SO网友:trundles

所以我从来没有发现为什么会出现这种情况,但我确实找到了一种解决方案,可以强制使用正确的url

add_action( \'init\', \'add_mypage_rule\' );

function add_mypage_rule(){
    add_rewrite_rule(\'^item/([^/]*)/?\',\'index.php?pagename=item\',\'top\');
}
从这里开始:https://stackoverflow.com/questions/18713230/wordpress-url-rewriting-parameters-in-url

相关推荐

用php实现WooCommerce维护模式

我想打开我网站的某些部分,剩下的页面只能作为网站管理员访问。我制作了一个维护插件,一切正常。然而,我无法过滤用户访问的页面。我想打开一个特定的产品类别,以及属于这个类别的所有产品。如果我没有以管理员身份登录,则无法访问产品类别及其所属的产品。我的代码如下-任何人都可以看到我做错了什么?谢谢<?php @return void function ng_maintenance_mode() { global $pagenow;