• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jianghu52
V2EX  ›  程序员

wordpress 新人求教如何在后台子项目里面调用其他的php文件?

  •  
  •   jianghu52 · Nov 12, 2013 · 3542 views
    This topic created in 4658 days ago, the information mentioned may be changed or developed.
    google了一遍,发现所有的例子上都是如此坑爹的写着:
    <?php
    function add_diy_menu() {
    add_submenu_page(__FILE__,'子菜单1','子菜单名称1',8,'your-admin-sub-menu1','my_function_submenu1');
    }
    function my_function_submenu1() {
    echo "<h2>子菜单1的页面内容</h2>";
    }
    add_action('admin_menu','add_diy_menu');
    ?>
    我希望的是子菜单1能调用wp-admin文件夹下的showtest.php文件。(里面只有一句echo “xxxx”)
    就是不会写了。
    我将 echo "<h2>子菜单1的页面内容</h2>"; 替换成
    wp_redirect(admin_url(showtest.php)); 但是不对。报错内容问:
    Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\wppro\wp-admin\menu-header.php:162)

    求教高人应该怎么写。
    7 replies    1970-01-01 08:00:00 +08:00
    sarices
        1
    sarices  
       Nov 12, 2013
    wp_redirect(admin_url(showtest.php)); 之前不能有输出,你改成js脚本跳转吧
    jianghu52
        2
    jianghu52  
    OP
       Nov 12, 2013
    functions.php里面写js么?那跟原来的在function里面写html没有区别啊。
    ximan
        3
    ximan  
       Nov 12, 2013
    你干嘛非要把showtest.php单独放到wp-admin里?
    直接把这页面的内容放在functions.php里然后按照你这方法调用不就OK了?
    这样好处就是升级不影响程序啊!所有东西应该都只放到模板文件夹里是最好的了。
    jianghu52
        4
    jianghu52  
    OP
       Nov 12, 2013
    因为很多的功能文件都放在了wp-admin 包里面,我只会在这个包里面调用其他的php文件,如果改在了主题里面,就不会调用了。
    lijinma
        5
    lijinma  
       Nov 13, 2013   ❤️ 1
    你把showtest.php写成一个类 class showtest;

    然后require一下呗,然后funtion my_function_submenu1() 新建类showtest的实例,再调用函数
    jianghu52
        6
    jianghu52  
    OP
       Nov 13, 2013
    @lijinma 这个方法好。我回去实验一下。
    axha180
        7
    axha180  
       Nov 13, 2013
    mark
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1159 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:07 · PVG 02:07 · LAX 11:07 · JFK 14:07
    ♥ Do have faith in what you're doing.