0

最新バージョンの Wordpress を使用していますが、新しい投稿を書いているときに、書き込み領域の下にあるオプション ボックスの代わりに次のエラーが表示されます。

キャッチ可能な致命的なエラー: 466 行目の /home/xxx/public_html/wp-content/themes/xxx/functions/meta-boxes.php のクラス __PHP_Incomplete_Class のオブジェクトを文字列に変換できませんでした

meta-boxes.php から取得した以下の問題コードを貼り付けました。

また、以下では、コードの 466 行目にコメントして、エラーが発生した場合のポイントをお知らせします。

 <?php  
    // get review-specific meta fields
    global $oswcPostTypes; 
    $postTypeId = get_post_type( $post->ID );   
    $postType = $oswcPostTypes->get_type_by_id($postTypeId);
    $meta_fields = $postType->meta_fields;
    foreach($meta_fields as $meta){
        //make backwards compatible
        if(is_object($meta)){
            $metaName = $meta->name;
        }else{
            $metaName = $meta;
        }
        $metaNameSafe = str_replace(" ","_",$metaName); // **466th line of error**
        $theMeta = get_post_meta($post->ID, $metaName, $single = true); ?>      
        <p>
        <label for="<?php echo $metaNameSafe; ?>"><?php echo $metaName; ?></label> </td>
        <textarea class="widefat" id="<?php echo $metaNameSafe; ?>" name="<?php echo $metaNameSafe; ?>"><?php echo $theMeta; ?></textarea>
        </p>

    <?php 
4

1 に答える 1

0

$meta->name はオブジェクトだと思います。試してください: print_r( $meta->name ).

また

$metaName = $meta->labels->name であるべきだと思います。

ただし、テストされていません。

ありがとう

于 2012-11-07T07:29:00.480 に答える