刷新规则显然是使用自定义帖子类型创建主题的重要部分。看见here 和here.
有没有人有关于如何从函数中刷新规则的示例代码。php?
我有点惊讶,抄本的自定义帖子类型页面中没有包括这一点。
更新:我尝试将其添加到函数中。php,但它不起作用:
register_deactivation_hook( __FILE__, array(&$this,\'deactivate\' ) );
function deactivate() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
最合适的回答,由SO网友:Johannes Pille 整理而成
虽然这里提供的解决方案仍然有效,但WordPress从那以后一直在发展,现在(我相信是从3.3开始)为主题激活提供了直接挂钩。
after_switch_theme
将在主题激活和switch_theme
在停用旧主题之前。
因此,最新的答案是:
function reflush_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_action( \'after_switch_theme\', \'reflush_rules\' );
SO网友:EAMann
不确定停用时是否刷新,但激活非常容易。
在您的functions.php
文件中,设置一些代码,如下所示:
function flush_rules_on_activation() {
global $wp_rewrite;
$is_installed = get_option(\'theme_installed\');
if(!$is_installed) {
$wp_rewrite->flush_rules();
add_option(\'theme_installed\', true);
}
}
add_action(\'init\', \'flush_rules_on_activation\');
这将每次运行,但只刷新一次规则,因为您在选项表中设置了一个标志,以防止每次刷新规则。