致命错误:调用成员函数the_meta()wpalchemy

时间:2012-07-24 07:46:56

标签: wordpress meta-boxes

当我从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()

请求帮助我找到错误原因

1 个答案:

答案 0 :(得分:1)

这里的主要问题是全局$ custom_mb很可能都没有。所以要求它有一个值是造成错误的原因。

看起来您的示例代码如下所示:http://www.farinspace.com/wpalchemy-metabox/

在全局之后使用print_r($custom_mb);来查看它包含的内容。如果没什么,你就会知道错误。

此外,你说的代码在循环内部应该就在它之外。

(更新) FIX:global $custom_mb;添加到新php页面的顶部。