You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在slug为t5-demo的插件菜单页面加载特定PHP代码

仅在特定WordPress菜单页面加载PHP代码的方法

有几种实用的方式可以实现仅在slug为t5-demo的菜单页面中加载指定PHP代码:

  • 利用add_menu_page返回的钩子名称
    add_menu_page会返回当前菜单页面的钩子标识,你可以基于这个钩子绑定自定义代码,确保代码只在目标页面执行:

    $hook = add_menu_page(
        'T5 Demo',        // page title
        'T5 Demo',        // menu title
        'manage_options', // capability
        't5-demo',        // menu slug
        'my_render_page'  // callback function
    );
    
    // 绑定到load钩子,页面加载时触发自定义代码
    add_action( "load-$hook", 'my_custom_php_logic' );
    
    function my_custom_php_logic() {
        // 这里写入你要执行的PHP代码
        // 示例:处理表单提交、初始化数据等
        if ( isset( $_POST['t5_demo_action'] ) ) {
            // 执行表单处理逻辑
        }
    }
    
  • 通过get_current_screen()检查当前页面
    借助WordPress的get_current_screen()函数,你可以在后台初始化钩子中判断当前页面是否为目标菜单页面,再执行代码:

    add_action( 'admin_init', 'run_code_on_t5_demo_page' );
    
    function run_code_on_t5_demo_page() {
        $current_screen = get_current_screen();
        // 验证当前页面的screen ID是否匹配目标slug
        if ( $current_screen && $current_screen->id === 't5-demo' ) {
            // 执行你的自定义PHP代码
            $demo_setting = get_option( 't5_demo_setting' );
            // 基于配置做后续处理
        }
    }
    
  • 直接在页面渲染回调中添加代码
    如果代码是页面渲染相关的逻辑,直接把代码写在菜单页面的回调函数my_render_page里即可,这样代码自然只会在该页面加载时运行:

    function my_render_page() {
        // 先执行自定义PHP逻辑
        $custom_content = generate_t5_demo_content(); // 自定义内容生成函数
    
        // 再渲染页面结构
        ?>
        <div class="wrap">
            <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
            <div class="demo-content">
                <?php echo wp_kses_post( $custom_content ); ?>
            </div>
        </div>
        <?php
    }
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:02:47