Wordpress使用标准重写然后设置功能来重写page_id

时间:2012-05-20 12:58:45

标签: wordpress preg-replace rewrite

我需要将wordpress与标准重写规则一起使用,例如“http://www.mysite.com/?p=123” ,但我想重写像“http://www.mysite.com/store”这样的内容,但我不想使用wordpress的内部功能,如“http://www.mysite.com/postname” ,我将重写.htacess,所以我写了,所以内容得到重写,

function replace_mycontent($string){
    $pattern = '/?page_id=([^/]+)/';  // urls like http://www.mysite.com/?p=123
    $replacement = '/$1/'; // gets replaced by http://www.mysite/store
return preg_replace($pattern, $replacement, $string);
}

add_filter('the_content', 'replace_mycontent');

这会产生错误,一些帮助欢迎,

谢谢!

1 个答案:

答案 0 :(得分:0)

替换此行代码:$pattern = '/?page_id=([^/]+)/';

$pattern = '/?p=([^/]+)/';

编辑1:

在.htaccess中,这可以作为完成(考虑到,Wordpress安装在站点的根目录中):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?p=$1 [L]
<IfModule>