2012-03-26 8 views
0

私は見やすくするためにいくつかのコードを省略しました。それは、収集したカードリストをXMLファイルから取り出し、それをmysqlテーブルに取り込むことです。カードごとにテーブルが作成されると、自動的に各カードのポストが作成され、データが入力されます。MTG MYSQL add_meta_dataのテーブルエラーが正しく機能していません

入力するデータの大半はカスタムフィールドで行います。ここで見ているものはすべて、私が得意でないカスタムフィールドエリアの1つの部分を除いて、完全に機能します。あるなし私のカスタムフィールドの

<?php add_post_meta(68, '_color', 'red', true); ?> 

が1以外の仕事

<?php add_post_meta($post_id, $meta_key, $meta_value, $unique); ?> 

例:他については

$meta($post_id, 'Condition', 'M/NM', true); 

Wordpressのコーデックスは、このようなカスタムフィールドを示しますそれらが機能しないカスタムフィールドには、次のような変数が含まれています。

$meta($post_id, 'Rating', $rating, true); 

私は成功しなかったいくつかの方法を試しました。 add_meta_dataで変数が使用されているネット上の例がたくさんあるので、なぜ正しく動作していないのかわかりません。これは過去2日間私を悩ませました。何か案は?

さらに、その投稿のおすすめ画像としてどのように写真を添付し​​ていますか?

<?php 
    $z = new xmlreader; 
    $z->open('http://***.com/wp-content/themes/***/mtg/arb.xml'); 
    $doc = new DOMDocument; 

    while ($z->read() && $z->name !== 'card'); 

    echo "<table border=1> 
    <tr> 
     <td><div class='id'>ID</div></td> 

    </tr>"; 

    $prodName = boutique_product_name('offer'); 
    $esc_html_e = esc_html_e('Add to cart','Boutique'); 
    while ($z->name === 'card') 

    { 

     $node = new SimpleXMLElement($z->readOuterXML()); 

     echo "<tr> 
     <td><div class='id1'>".$node->id."</div></td> 

     $name   = $node->name; 
     $rarity   = $node->rarity; 
     $manacost  = $node->manacost; 
     $ability  = $node->ability; 
     $pricing_high  = $node->pricing_high; 


     $mtg_post = array(); 
     $mtg_post['post_title'] = wp_strip_all_tags($name); 
     $mtg_post['post_content'] = wp_strip_all_tags($ability); 
     $mtg_post['post_status'] = 'publish'; 
     $mtg_post['post_author'] = 1; 
     $mtg_post['post_type'] = 'post'; 
     $mtg_post['post_category'] = array(89,90); 
     $mtg_post['comment_status'] = 'closed'; 
     $mtg_post['ping_status'] = 'closed';   

     $post_id = wp_insert_post($mtg_post); 

     $meta = add_post_meta; 


     $meta($post_id, 'Mana Cost', $manacost, true); 
     $meta($post_id, 'Rarity', $rarity, true); 
     $meta($post_id, 'Condition', 'M/NM', true); 
     $meta($post_id, 'Price', $pricing_high, true); 

     echo "<td><a href=\"#$prodName\" class=\"add-to-cart et-shop-item\">\"$esc_html_e\"</a></td>"; 

     $z->next('card'); 
    } 
    echo "</table>"; 
?> 

答えて

0

私はついにそれを理解しました。他の誰かがこの同じ問題に遭遇した場合は、ここに修正があります。

add_post_meta内にある変数は、二重引用符で囲む必要があり、複雑な構文でのみ機能します。

以下の例:

$meta = add_post_meta; 

$meta($post_id, 'Flavor', "{$flavor}"); 
関連する問題