Merlinx VCMS 与 Wordpress 集成
Merlinx VCMS integration with Wordpress
几个小时前,我有一个任务是将 Merlinx 的 VCMS 与 Wordpress 集成。
主要有两个问题:
1) Wordpress 尝试在 URL 中添加斜线作为最后一个字符,并且无法加载任何 JS 或其他资源
2) 模块需要自定义重写规则,与WordPress规则冲突
网上还没有解决这个问题的资料。
因此,如果您遇到同样的问题,这是快速解决方案:
1) functions.php
里面的代码
add_action( 'init', function() {
add_rewrite_rule( '__page_slug__/(.*)$', 'index.php?pagename=__page_slug__&_url=/$matches[1]', 'top' );
} );
add_filter( 'query_vars', 'prefix_query_vars' );
function prefix_query_vars( $query_vars )
{
$query_vars[] = '_url';
return $query_vars;
}
2) 在rwdGate.php里面插入:
//before line with $rwdUrl = 'http://' . $this->domainName . '/' . $url[1];
$url[1]= preg_replace("/(\?v=).*$/",'',$url[1]); // for fonts
if(substr($url[1], -1) == '/') {
$url[1] = substr($url[1], 0, -1); // for js
}
这是一个 hack,如果有一些基于 .htaccess 的解决方案,我会很高兴见到他。
几个小时前,我有一个任务是将 Merlinx 的 VCMS 与 Wordpress 集成。
主要有两个问题:
1) Wordpress 尝试在 URL 中添加斜线作为最后一个字符,并且无法加载任何 JS 或其他资源
2) 模块需要自定义重写规则,与WordPress规则冲突
网上还没有解决这个问题的资料。
因此,如果您遇到同样的问题,这是快速解决方案:
1) functions.php
里面的代码add_action( 'init', function() {
add_rewrite_rule( '__page_slug__/(.*)$', 'index.php?pagename=__page_slug__&_url=/$matches[1]', 'top' );
} );
add_filter( 'query_vars', 'prefix_query_vars' );
function prefix_query_vars( $query_vars )
{
$query_vars[] = '_url';
return $query_vars;
}
2) 在rwdGate.php里面插入:
//before line with $rwdUrl = 'http://' . $this->domainName . '/' . $url[1];
$url[1]= preg_replace("/(\?v=).*$/",'',$url[1]); // for fonts
if(substr($url[1], -1) == '/') {
$url[1] = substr($url[1], 0, -1); // for js
}
这是一个 hack,如果有一些基于 .htaccess 的解决方案,我会很高兴见到他。