我制作了一个只用于一个站点的快速插件(多个域,但主题、插件和内容相同)。在其中一个网站上,我得到一个错误
警告:call\\u user\\u func\\u array()要求参数1是有效回调,第一个数组成员不是/httpd中的有效类名或对象。www/wp-includes/plugin。php在线525
在所有其他安装上,它运行正常,没有任何问题。
我添加到插件的代码是:
include_once( \'acf.php\' );
define( \'ACF_LITE\', true );
function create_posttype() {
register_post_type( \'menyside\',
array(
\'labels\' => array(
\'name\' => __( \'Menysider\' ),
\'singular_name\' => __( \'Menyside\' )
),
\'public\' => true,
\'has_archive\' => false,
\'rewrite\' => array(\'slug\' => \'meny\'),
\'supports\' => array( \'title\', \'editor\', \'comments\', \'excerpt\', \'custom-fields\', \'thumbnail\' ),
)
);
}
add_action( \'init\', \'create_posttype\' );
add_action( \'plugins_loaded\', array( $this, \'acf_fields\' ) );
add_theme_support( \'post-thumbnails\',\'menyside\');
if( function_exists(\'acf_add_local_field_group\') ):
acf_add_local_field_group(array (
\'key\' => \'group_56b90ec45265a\',
\'title\' => \'menufields\',
\'fields\' => array (
array (
...... (continued, data from PHP output from ACF)
知道这是什么原因吗?
SO网友:Xavier Serrano
正如人们所说,您的代码可能有很多地方出错。让我们一行一行地开始。
这是一个插件还是一个主题内的文件include_once( \'acf.php\' );
我假设你的文件和当前文件在同一个目录下,否则你就把它包括错了。
这define( \'ACF_LITE\', true );
需要在每次定义之前或在使用/调用之前发生。
如前所述$this
在里面add_action( \'plugins_loaded\', array( $this, \'acf_fields\' ) );
不能在类外调用同样的&$this
它用于引用类,“act\\u fields”是该类中的函数/方法
你真的不需要这个add_theme_support( \'post-thumbnails\',\'menyside\');
在创建上述帖子类型时,您已经在添加支持。