2016-03-03 67 views
0

我在页面上使用了.htaccess RewriteRule。当用户进入Wordpress循环在使用RewriteRule时不起作用

/news 

重写规则实际上载入

/?nav=news 

在该页面中,我使用WordPress的循环显示最近的职位

if (have_posts()) { 
    while (have_posts()) { 
     the_post(); 
     the_title(); 
    } 
} 

直接从访问该页面时,/? nav =新闻,The Loop显示帖子。但是,当我从/新闻(使用RewriteRule)访问页面时,我没有得到任何结果。

这是什么原因?

实际RewrirteRule看起来是这样的:

RewriteRule ^news\/?$ ?nav=news [L] 

感谢您的帮助!

回答

0

您必须通知wordpress'这两个地址的含义相同,使用WP redirect API。你做WP的方式不知道/news/?nav=news是一样的。

尝试将此代码添加到您的主题

function custom_rewrite_news() { 
    add_rewrite_rule('^news/?', 'index.php?nav=news', 'top'); 
} 
add_action('init', 'custom_rewrite_news'); 

在仪表板进入设置 - >永久链接,只需点击无任何变化保存更改。

希望它有帮助!

+0

感谢您的输入。我试图把你的代码放入我的主题文件夹中的functions.php中,在Permarlinks选项卡中保存更改并且它仍然不起作用。当我打开.htaccess文件时,规则不会被插入。 –

+0

好吧,所以我试图把RewriteRule放到htaccess中,并且它可以工作。不知道函数add_rewrite_rule是否必须对它做些什么? –