You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过PHP更新WordPress固定链接:后台设置菜单禁用后的解决方案

替代方案:无需后台「设置」菜单刷新WordPress固定链接(Flush Rewrite Rules)

我太懂这种憋屈了——刚折腾完自定义文章类型(CPT),结果后台的设置菜单被模板作者锁得死死的,连刷新固定链接的入口都找不到,翻遍代码还搜不到remove_menu_page('options-general.php')的痕迹。别慌,下面给你几个实用的替代方案,全靠flush_rewrite_rules()来解决问题:

1. 主题functions.php临时插代码(最简单上手)

直接在当前主题的functions.php末尾加一段临时代码,访问任意前端页面就会触发刷新,完事记得立刻删掉,不然每次加载都刷会拖慢网站:

// 临时刷新重写规则!访问任意页面后马上删除这段代码!
add_action('init', function() {
    flush_rewrite_rules();
});

⚠️ 重要提醒:一定要在看到自定义文章类型链接正常后,把这段代码删掉!

2. 做个一次性临时插件(不碰主题文件更安全)

担心主题更新会覆盖代码?那就整个临时插件:

  1. wp-content/plugins/目录新建文件夹flush-rewrite-temp
  2. 里面新建flush-rewrite-temp.php,内容如下:
<?php
/*
Plugin Name: 临时刷新重写规则
Description: 激活即刷新,完成后请立刻禁用删除
Version: 1.0
*/

// 插件激活时执行刷新
register_activation_hook(__FILE__, function() {
    flush_rewrite_rules();
    // 可选:激活后自动禁用插件,避免忘记删
    deactivate_plugins(plugin_basename(__FILE__));
});
  1. 到后台插件菜单激活它,刷新完成后直接删掉这个插件就行,干净无残留。

3. WP-CLI命令行(服务器权限用户首选)

如果你能通过SSH登服务器,或者主机支持WP-CLI,这是最高效的方式,直接敲一行命令:

wp rewrite flush

回车搞定,完全不用碰代码,也不会留下任何隐患。

4. 临时PHP脚本(适合没WP-CLI又不想动主题插件的情况)

  1. 在网站根目录(和wp-config.php同文件夹)新建flush-rewrite.php
  2. 写入以下内容:
<?php
require_once('wp-load.php');
flush_rewrite_rules();
echo '重写规则已刷新!请立即删除这个文件!';
  1. 浏览器访问你的域名/flush-rewrite.php,看到提示后立刻删掉这个文件,防止被恶意利用。

额外小提示

  • 刷新后记得测试自定义文章类型的链接是否正常,不行就多刷一次
  • 以后修改CPT的参数后,还是需要重复这个操作刷新规则
  • 关于找不到隐藏设置菜单的代码:可以全局搜索主题和插件里的remove_submenu_pageadd_filter('admin_menu', ...),有些模板会用用户权限判断或者CSS隐藏菜单,不一定直接用remove_menu_page

内容的提问来源于stack exchange,提问作者Alesis

火山引擎 最新活动