致命错误:未捕获错误:调用未定义的函数

时间:2019-03-06 作者:Viet T

我试图创建自己的函数调用Test 从一个简单的插件php文件(列表类别插件),但当我调用它。显示错误” Fatal error: Uncaught Error: Call to undefined function… “

<?php
/* 
Plugin Name: List Categories
*/
class ListCategories{
   static function list_categories($atts, $content = null) {
    $atts = shortcode_atts(
      array(
        \'show_option_all\'    => \'\',
        \'orderby\'            => \'name\',
        \'order\'              => \'ASC\',
        \'style\'              => \'list\',
        \'show_count\'         => 0,
        \'hide_empty\'         => 1,
        \'use_desc_for_title\' => 1,
        \'child_of\'           => 0,
        \'feed\'               => \'\',
        \'feed_type\'          => \'\',
        \'feed_image\'         => \'\',
        \'exclude\'            => \'\',
        \'exclude_tree\'       => \'\',
        \'include\'            => \'\',
        \'hierarchical\'       => 1,
        \'title_li\'           => __( \'Categories\' ),
        \'show_option_none\'   => __( \'No categories\' ),
        \'number\'             => null,
        \'echo\'               => 1,
        \'depth\'              => 0,
        \'current_category\'   => 0,
        \'pad_counts\'         => 0,
        \'taxonomy\'           => \'category\',
        \'walker\'             => null
      ), $atts
    );

    test();
    ob_start();
    wp_list_categories($atts);
    $output = ob_get_contents();       
    ob_end_clean();    
    return $output; 
  }

  function test(){
    //Do something
  }
}

add_shortcode( \'categories\', array(\'ListCategories\', \'list_categories\') );
为什么我不能调用该函数?我试着更新Wordpress,但仍然不起作用。谢谢

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

代码中有以下部分:

test();
ob_start();
wp_list_categories($atts);
$output = ob_get_contents();  
但我真的怀疑test 存在于您的页面上。

有一个函数称为test 但它不是静态的(因此,除非将其更改为static function test(){...}), 你应该用self::test();

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。