Php WordPress:添加元框错误
我重写WordPress示例以创建一个元框,使用函数作为变量:Php WordPress:添加元框错误,php,wordpress,Php,Wordpress,我重写WordPress示例以创建一个元框,使用函数作为变量: $myplugin_add_meta_box = function() { add_meta_box('myplugin_sectionid', 'Testing', $myplugin_meta_box_callback, 'page' ); }; add_action( 'add_meta_boxes', $myplugin_add_meta_box ); $myplugin_meta_box_callback =
$myplugin_add_meta_box = function() {
add_meta_box('myplugin_sectionid', 'Testing', $myplugin_meta_box_callback, 'page' );
};
add_action( 'add_meta_boxes', $myplugin_add_meta_box );
$myplugin_meta_box_callback = function( $post ) {
wp_nonce_field( 'myplugin_save_meta_box_data', 'myplugin_meta_box_nonce' );
$value = get_post_meta( $post->ID, '_my_meta_value_key', true );
echo '<label for="myplugin_new_field">';
_e( 'Description for this field', 'myplugin_textdomain' );
echo '</label> ';
echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="' . esc_attr( $value ) . '" size="25" />';
};
$myplugin\u add\u meta\u box=function(){
添加元数据框(“myplugin\u sectionid”、“Testing”、“myplugin\u meta\u box\u callback”、“page”);
};
添加操作('add_meta_box',$myplugin_add_meta_box);
$myplugin\u meta\u box\u callback=函数($post){
wp_nonce_字段('myplugin_save_meta_box_data','myplugin_meta_box_nonce');
$value=get_post_meta($post->ID,''u my_meta_value_key',true);
回声';
_e('Description for this field','myplugin_textdomain');
回声';
回声';
};
但这一错误似乎是:
警告:call_user_func()要求参数1为有效回调,
中没有给定数组或字符串
/var/www/public/wp admin/includes/template.php,第1037行
我相信这个错误与函数作为变量的使用有关。add_action('add_meta_box','myplugin_add_meta_box');
add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );
function myplugin_add_meta_box() {
add_meta_box('myplugin_sectionid', 'Testing', 'myplugin_meta_box_callback', 'page' );
}
function myplugin_meta_box_callback ( $post ) {
wp_nonce_field( 'myplugin_save_meta_box_data', 'myplugin_meta_box_nonce' );
$value = get_post_meta( $post->ID, '_my_meta_value_key', true );
echo '<label for="myplugin_new_field">';
_e( 'Description for this field', 'myplugin_textdomain' );
echo '</label> ';
echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="' . esc_attr( $value ) . '" size="25" />';
};
函数myplugin\u add\u meta\u box(){
添加元数据框(“myplugin\u sectionid”、“Testing”、“myplugin\u meta\u box\u callback”、“page”);
}
函数myplugin\u meta\u box\u回调($post){
wp_nonce_字段('myplugin_save_meta_box_data','myplugin_meta_box_nonce');
$value=get_post_meta($post->ID,''u my_meta_value_key',true);
回声';
_e('Description for this field','myplugin_textdomain');
回声';
回声';
};
将myplugin\u meta\u box\u回调声明为函数,而不是变量。add\u操作('add\u meta\u box','myplugin\u add\u meta\u box');
add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );
function myplugin_add_meta_box() {
add_meta_box('myplugin_sectionid', 'Testing', 'myplugin_meta_box_callback', 'page' );
}
function myplugin_meta_box_callback ( $post ) {
wp_nonce_field( 'myplugin_save_meta_box_data', 'myplugin_meta_box_nonce' );
$value = get_post_meta( $post->ID, '_my_meta_value_key', true );
echo '<label for="myplugin_new_field">';
_e( 'Description for this field', 'myplugin_textdomain' );
echo '</label> ';
echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="' . esc_attr( $value ) . '" size="25" />';
};
函数myplugin\u add\u meta\u box(){
添加元数据框(“myplugin\u sectionid”、“Testing”、“myplugin\u meta\u box\u callback”、“page”);
}
函数myplugin\u meta\u box\u回调($post){
wp_nonce_字段('myplugin_save_meta_box_data','myplugin_meta_box_nonce');
$value=get_post_meta($post->ID,''u my_meta_value_key',true);
回声';
_e('Description for this field','myplugin_textdomain');
回声';
回声';
};
将myplugin\u meta\u box\u回调声明为函数,而不是变量。找到了解决方案:
add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );
function myplugin_add_meta_box() {
add_meta_box('myplugin_sectionid', 'Testing', 'myplugin_meta_box_callback', 'page' );
}
function myplugin_meta_box_callback ( $post ) {
wp_nonce_field( 'myplugin_save_meta_box_data', 'myplugin_meta_box_nonce' );
$value = get_post_meta( $post->ID, '_my_meta_value_key', true );
echo '<label for="myplugin_new_field">';
_e( 'Description for this field', 'myplugin_textdomain' );
echo '</label> ';
echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="' . esc_attr( $value ) . '" size="25" />';
};
add_meta_box('myplugin_sectionid', 'Testing', __NAMESPACE__ . '\\myplugin_meta_box_callback', 'page' );
找到解决方案:
add_meta_box('myplugin_sectionid', 'Testing', __NAMESPACE__ . '\\myplugin_meta_box_callback', 'page' );
请按照我在回答中的建议更改代码并让我知道它是否适用于您。请按照我在回答中的建议更改代码并让我知道它是否适用于您。这样,错误是:警告:call\u user\u func()要求参数1为有效回调,在第1037行的/var/www/public/wp admin/includes/template.php中找不到函数“myplugin\u meta\u box\u callback”,或者函数名无效。这样,错误是:警告:call\u user\u func()希望参数1是有效的回调,在线/var/www/public/wp admin/includes/template.php中未找到函数“myplugin\u meta\u box\u callback”或函数名无效1037@Milap对把上面的行改一下。太好了,你能接受我的答案吗?@Milap是的。好的,请你接受我的回答,把它写完整好吗?