我的主题选项面板中有一个设置,允许用户切换永久链接设置以支持友好的URL。我只允许/%postname%/和/% postname..html作为选项。
每次有人访问网站上的页面或查看主题选项时,我都不想触发htaccess重写,所以我试图对此进行编码以避免这种情况。
我在主题选项中有一个名为$ myTheme_permalinks的输入字段。默认值为“/%postname%/”,但用户也可以将其更改为“/% postname.html”
以下是处理此设置的主题选项顶部的代码。这听起来不错吗?
if(get_option('myTheme_permalinks') =="/%postname%/" && get_option('permalink_structure') !== "/%postname%/" || !get_option('myTheme_permalinks'))
{
require_once(ABSPATH . '/wp-admin/includes/misc.php');
require_once(ABSPATH . '/wp-admin/includes/file.php');
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%/');
$wp_rewrite->flush_rules();
update_option('permalink_structure','/%postname%/');
update_option('myTheme_permalinks','/%postname%/');
}
else if (get_option('myTheme_permalinks') =="/%postname%.html" && get_option('permalink_structure') !== "/%postname%.html")
{
require_once(ABSPATH . '/wp-admin/includes/misc.php');
require_once(ABSPATH . '/wp-admin/includes/file.php');
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%.html');
$wp_rewrite->flush_rules();
update_option('permalink_structure','/%postname%.html');
}
答案 0 :(得分:0)
您不需要单独添加代码块来添加.html。你可以按照以下方式做点什么:
$myThemePermalinks = get_option('myTheme_permalinks');
if ( ($myThemePermalinks =="/%postname%/" && get_option('permalink_structure') !== "/%postname%/" || !$myThemePermalinks) || ($myThemePermalinks == "/%postname%.html" && get_option('permalink_structure') !== "/%postname%.html") ) {
if (preg_match('/\.html$/', $myThemePermalinks)) {
$ext = '.html';
} else {
$ext = '';
}
require_once(ABSPATH . '/wp-admin/includes/misc.php');
require_once(ABSPATH . '/wp-admin/includes/file.php');
global $wp_rewrite;
$wp_rewrite->set_permalink_structure('/%postname%/'.$ext);
etc..// .
}
如果您不想使用正则表达式,则不必使用正则表达式。您甚至可以通过使用正则表达式检查选项.html来缩短条件。