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();

custom-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 \ twintyeleven \ single.phpの非オブジェクトでメンバー関数the_meta()を呼び出す

嘆願は私がエラーの原因を見つけるのを助けます

4

1 に答える 1

1

ここでの主な問題は、グローバルな $custom_mb がおそらく何もないということです。したがって、値を持つように要求することがエラーの原因です。

次の例のように、正しいコードがあるように見えます: http://www.farinspace.com/wpalchemy-metabox/

print_r($custom_mb);グローバルの後に使用して、それが保持するものを確認します。それが何もない場合は、何かが間違っていることを知っています。

また、ループの内側にあると言うコードは、ループのすぐ外側にある必要があります。

(更新)修正:global $custom_mb;新しい php ページの先頭に追加します。

于 2012-07-24T09:51:04.587 に答える