2015-10-13 54 views
0

我想用wordpress頁面中特定的meta key更新元值。我想要的是,將元值與變量相乘,然後將結果寫入另一個元值。例如通過meta key更新所有貼子的配合值

;

$var=5 
meta_key|meta_value 
key-1 |10 
key-2 |20 

key-1 = 100(key-2 * $ var)的meta_value。我已經嘗試了下面的代碼來檢索key-1,但它什麼都沒有返回。

require_once("wp-load.php"); 

function wp_update_value() { 

global $wpdb; 

$mylink = $wpdb->get_results(" 
        SELECT $wpdb->postmeta.meta_value 
        FROM $wpdb->postmeta 
        WHERE $wpdb->postmeta.meta_key = 'key-1'", 
        ARRAY_A); 


$array = unserialize($mylink); 

return $array; 
} 

如何通過元鍵獲取兩個元值並更新所有帖子?

回答

0

你可以做一個循環中,是這樣的:

<?php 
    header('Response: HTTP/1.1 200 OK'); 
    define('WP_USE_THEMES', false); 
    require('../../../../wp-load.php'); 
    $args = array(
     'posts_per_page' => '-1', 
    ); 
    $the_query = new WP_Query($args); 
    $var = 5; 
    if ($the_query->have_posts()){ 
     while ($the_query->have_posts()) : $the_query->the_post(); 
      $value = 100 * (get_post_meta(get_the_ID(),'key-2',true) * $var); 
      update_post_meta(get_the_ID(), 'key-1', $value); 
     endwhile; 
    } 
?> 
+0

謝謝你的答案。我得到這個錯誤;當我運行代碼時發生「致命錯誤:不支持的操作數類型」。 –

+0

嘗試向get_post_meta(get_the_ID(),'key-2') - > get_post_meta(get_the_ID(),'key-2',false)添加第三個參數'false',否則它將返回一個數組:)(I've編輯完整的代碼) – esedeerre