2015-12-23 35 views
0

這是我正在使用的代碼。它會在每次刷新時創建重複的帖子。另外,如何將自定義字段添加到我的文章?如何從外部json文件創建WordPress的帖子?

我的數組是這樣的:

[{ 
    "featured":"", 
    "exclusive":"", 
    "promo_id":"XXX", 
    "offer_id":"1", 
    "title" : "Super Cars" 
}] 

我的PHP代碼:

<?php 
$json = "url"; 
$response = file_get_contents($json); 
$mydecode = json_decode($response); 

for ($i = 10; $i < 15; $i++) { 
    $title = str_replace("&amp;", "&", $mydecode[$i]->title); 
    $id = $mydecode[$i]->offer_id; 
    $link = $mydecode[$i]->link; 

    if($id === "x") { 

     $new_post = array(
     'post_title' => $title, 
     'post_content' => $description, 
     'post_status' => 'draft', 
     'post_author' => 1, 
     'post_type' => 'coupon' 
     ); 
     $post_id = wp_insert_post($new_post); 
    } 
} 
?> 

代碼成功地插入職位,但每次重複我刷新時間。 如果任何人都可以貢獻一點,那就太棒了!

+0

您需要通過'title'使用查詢來檢查帖子。 –

+0

好的,但如何?謝謝你的回覆 –

+0

檢查這個帖子:http://wordpress.stackexchange.com/questions/58593/check-if-post-title-exists-insert-post-if-doesnt-add-incremental-to-meta-if –

回答

0

更新你的代碼下面,

<?php 
$json = "http://tools.vcommission.com/api/coupons.php?apikey=xxxxxxxxxx"; 
$response = file_get_contents($json); 
$mydecode = json_decode($response); 

for ($i = 0; $i < 15; $i++) { 
    $title = str_replace("&amp;", "&", $mydecode[$i]->coupon_title); 
    $description = str_replace("&amp;", "&", $mydecode[$i]->coupon_description); 
    $store_name = $mydecode[$i]->offer_name; 
    $coupon_type = $mydecode[$i]->coupon_type; 
    $coupon_code = $mydecode[$i]->coupon_code; 
    $link = $mydecode[$i]->link; 
    $expiry_date = $mydecode[$i]->coupon_expiry; 
    if($coupon_type === "Coupon") { 
     // Check if already exists 
     $get_page = get_page_by_title($title); 
     if ($get_page == NULL){ 
      // Insert post 
      $new_post = array(
       'post_title' => $title, 
       'post_content' => $description, 
       'post_status' => 'draft', 
       'post_author' => 1, 
       'post_type' => 'coupon' 
      ); 
      // Insert post 
      $post_id = wp_insert_post($new_post); 
      // Insert post meta if available 
      add_post_meta($post_id, 'meta_key', 'meta_value'); 

      // Uncomment to check if meta key is added 
      // $get_meta_value = get_post_meta($post_id, 'meta_key', true);   
      // echo "<pre>"; 
      // print_r($get_meta_value); 
     } 
    }else{ 
     // Update meta value 
     update_post_meta($get_page->ID, 'my_key', 'meta_value'); 

     // Uncomment to check if meta key is added 
     // $get_meta_value = get_post_meta($get_page->ID, 'meta_key', true);   
     // echo "<pre>"; 
     // print_r($get_meta_value); 
    } 
} 
?> 

我希望這有助於。

+0

它的工作已經完成,但仍無法檢索'meta_key'。我怎麼能找到? –

+0

你想插入或更新元? – Nikhil

+0

插入meta如果不存在其他更新meta –