0

コードの 3 行目に何らかのエラーがあり、それを理解できないようです。以下は、出力しているエラーと私のコードです。

致命的なエラー: 3 行目の非オブジェクトに対するメンバー関数 the_meta() の呼び出し

<?php $meta = $custom_metabox->the_meta('description', TRUE); 
if (!empty($meta)): 
echo '<p class="description">'.$meta['description'].'</p>'; ?>
<?php endif; ?>

<br>

<ul id="process"><span>Process: </span></ul>

<br>

<ul class="credits">
<?php if(the_meta()) { the_meta(); } ?>
    <li class="shorturl"><span>Short Url: </span>
        <div id="d_clip_container">
            <input id="fe_text" onChange="clip.setText(this.value)" type="text" value="<?php echo bitly(); ?>" />
        <div id="d_clip_button" class="my_clip_button"></div>
        </div>
    </li>
    <li class="save"><span>Save: </span> <a class="gimmebar" href="#">Gimme Bar</a></li>                
</ul>
</div> <!-- End Info -->

<?php get_search_form(); ?>

3行目です <?php $meta = $custom_metabox->the_meta('description', TRUE);

4

1 に答える 1

1

コードに何かが欠けている可能性があります。3 行$custom_metabox->the_meta('description', TRUE)目を見てください: .. 13 行目を見てif(the_meta()) { the_meta(); }ください: コードの一部で をthe_meta()メンバー関数として使用し、別の部分で一般関数として使用しています。 .. これはどうして正しいのでしょうか? 最初the_meta()に、がクラス内にあるかどうかを確認し、適切に呼び出してください...

アップデート:

wpalchemy マニュアルでいくつかの検索を行ったところ、問題が何であるかが分かりました.テンプレートにメタボックスを含めることができるように、を a として構築する必要があります..ここ$custom_metabox読んでください..WPAlchemy_MetaBoxfunctions.php

サンプル:

$custom_metabox = new WPAlchemy_MetaBox(array
(
    'id' => '_custom_meta',
    'title' => 'My Custom Meta',
    'template' => STYLESHEETPATH . '/custom/meta.php'
));

そして、それができたら、テンプレートに関数を含める必要があります...

マニュアルに記載されているサンプル コード:

// usually needed
global $custom_metabox;

// get the meta data for the current post
$custom_metabox->the_meta();

// set current field, then get value
$custom_metabox->the_field('name');
$custom_metabox->the_value();

// get value directly
$custom_metabox->the_value('description');

// loop a set of fields
while($custom_metabox->have_fields('authors'))
{
    $custom_metabox->the_value();
}

// loop a set of field groups
while($custom_metabox->have_fields('links'))
{
    $custom_metabox->the_value('title');

    $custom_metabox->the_value('url');

    if ($custom_metabox->get_the_value('nofollow')) echo 'is-nofollow';

    $custom_metabox->the_value('target');
}

global $custom_metabox;※一番上に注意 * * また、$custom_metabox->the_meta();プレーンなだけでなく、好きなように使用する必要がありthe_meta();ます..

于 2012-09-21T17:36:51.000 に答える