当我从single.php调用the_meta()时,我遇到错误,使用wordpress 3.4.1和WordPress Alchemy Metabox Class 1.4.17,我的functions.php
include_once ( get_template_directory() .'/metaboxes/setup.php');
include_once( get_template_directory() .'/metaboxes/custom-spec.php');
我的setup.php
include_once WP_CONTENT_DIR . '/wpalchemy/MetaBox.php';
include_once WP_CONTENT_DIR . '/wpalchemy/MediaAccess.php';
// include css to help style our custom meta boxes
add_action( 'init', 'my_metabox_styles' );
function my_metabox_styles()
{
if ( is_admin() )
{
wp_enqueue_style( 'wpalchemy-metabox', get_stylesheet_directory_uri() . '/metaboxes/meta.css' );
}
}
$wpalchemy_media_access = new WPAlchemy_MediaAccess();
定制spec.php
<?php
$custom_mb = new WPAlchemy_MetaBox(array
(
'id' => '_custom_meta',
'title' => 'My Custom Meta',
'template' => get_stylesheet_directory() . '/metaboxes/custom-meta.php',
));
和single.php
<?php //inside loop.......... ?>
<?php global $custom_mb ?>
<?php echo $custom_mb->the_meta();?>
错误是:致命错误:在第19行的C:\ wamp \ www \ wp \ wp-content \ themes \ twentyeleven \ single.php中的非对象上调用成员函数the_meta()
请求帮助我找到错误原因
答案 0 :(得分:1)
这里的主要问题是全局$ custom_mb很可能都没有。所以要求它有一个值是造成错误的原因。
看起来您的示例代码如下所示:http://www.farinspace.com/wpalchemy-metabox/
在全局之后使用print_r($custom_mb);
来查看它包含的内容。如果没什么,你就会知道错误。
此外,你说的代码在循环内部应该就在它之外。
(更新) FIX:将global $custom_mb;
添加到新php页面的顶部。