繁体   English   中英

WP URL重写插件

[英]WP URL Re-writing plugin

我正在尝试将一些非wordpress PHP页面集成到现有的Wordpress网站中。 理想情况下,我想将任何看起来像这样的请求重写:'domain.com/books/bookname'到'domain.com/catalog.php?title=bookname'。 我已经搞砸了WP Rewrite API了几个小时,但是我什么都无法工作。 这是我当前的插件代码:

register_activation_hook( __FILE__, 'wbm_catalog_activate' );
function wbm_catalog_activate() {
    wbm_catalog_add_rules();
    flush_rewrite_rules();
}

// Flush when deactivated
register_deactivation_hook( __FILE__, 'wbm_catalog_deactivate' );
function wbm_catalog_deactivate() {
    flush_rewrite_rules();
}

add_action( 'init', 'wbm_catalog_add_rules' );
function wbm_catalog_add_rules() {
    add_rewrite_rule( 'books/([^/]+)/?',
        'catalog.php?title=$matches[1]', 'top' );
}

我什至可以检查$ wp_rewrite对象并查看添加的新规则,但是每当我尝试访问重写的url时,wordpress的行为就好像规则不在那儿。

我的头一直撞在砖墙上,我将不胜感激您能提供的任何帮助!

问题是:

语句flush_rewrite_rulesadd_rewrite_rule之前执行,因此生成的新缓存不将您的内容包括在add_rewrite_rule

您可以使用数据库中的值进行验证

select option_name, option_value from wp_options where option_name = 'rewrite_rules';

我无法解决此问题。 我正在处理的站点是旧WordPressMU设置(2.8)的一部分,其中包含许多站点。 我无权访问MU安装所使用的.htaccess文件,并且没有将任何请求传递给我可以编辑的.htaccess文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM