0

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

自定义规范.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()

请帮我找出错误的原因

4

1 回答 1

1

这里的主要问题是全局 $custom_mb 很可能什么都不是。所以要求它有一个值是导致错误的原因。

看起来你有正确的代码,如这里的示例:http: //www.farinspace.com/wpalchemy-metabox/

在全局之后使用print_r($custom_mb);以查看它的内容。如果没什么,你就知道有问题了。

Also, the code you say is inside the loop should be just outside of it.

(Update) FIX: Add global $custom_mb; to the top of the new php page.

于 2012-07-24T09:51:04.587 回答