我正在尝试重写页面URL,以便它们以.htm
我可以用。。。
/* Add .htm extension to Page URL Links */
add_action(\'init\', \'htm_page_permalink\', -1);
function htm_page_permalink() {
global $wp_rewrite;
if ( !strpos($wp_rewrite->get_page_permastruct(), \'.htm\')){
$wp_rewrite->page_structure = $wp_rewrite->page_structure . \'.htm\';
}
}
/* Remove the trailing slash/ on Pages */
add_filter(\'user_trailingslashit\', \'no_page_slash\',66,2);
function no_page_slash($string, $type){
global $wp_rewrite;
if ($wp_rewrite->using_permalinks() && $wp_rewrite->use_trailing_slashes==true && $type == \'page\'){
return untrailingslashit($string);
}else{
return $string;
}
}
但后来我遇到了一个问题
Blog
在名为的页面上发布列表
Blog
. 我需要这个页面
NOT 结束于
.htm
因此,我随后使用此代码更改页面链接以筛选出.htm
在我的blog
页
/* Filter .htm out of Blog Page Links */
function blog_page_url($content) {
$current_path = \'/blog.htm\';
$new_path = \'/blog/\';
$content = str_replace($current_path, $new_path, $content);
return $content;
}
add_filter(\'_get_page_link\', \'blog_page_url\');
我用这个重写规则
/blog/
加载
Blog Page
...
/* Setup Custom Re-write for the Blog Page */
add_action( \'init\', \'blog_page_rewrite\' );
function blog_page_rewrite(){
add_rewrite_rule(\'blog\', \'index.php?pagename=blog\',\'top\' );
//add_rewrite_rule(\'blog/(.*?)/\', \'index.php?p=$matches[1]\',\'top\' );
}
但现在我有一个问题,任何带有
/blog/
其中显示
Blog page
.
这意味着我的实际博客帖子是在WP Permalink设置中设置的,就像这样。。。
/blog/%postname%/
不起作用,相反,他们总是显示Blog page
其中列出了所有博客帖子。
在我的blog_page_rewrite()
你可以看到,我测试了一个额外的重写规则,希望可以处理博客帖子,但并没有任何影响。