Обновление значений mate по метаключу для всех постов

Я хочу обновить мета-значение с помощью определенного мета-ключа на странице WordPress. Я хочу, чтобы, умножив мета-значение на переменную, затем записать результат в другое мета-значение.

Например;

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

мета_значение для ключа-1 = 100 (ключ-2 * $var). Я пробовал ниже код для получения ключа-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;
}

Как я могу получить два мета-значения по мета-ключам и обновить их для всех сообщений?


person Berk Koç    schedule 13.10.2015    source источник


Ответы (1)


Вы можете сделать это внутри цикла, например:

<?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;
    }
?>
person esedeerre    schedule 13.10.2015
comment
Спасибо за твой ответ. Я получил эту ошибку; Неустранимая ошибка: неподдерживаемые типы операндов при запуске кода. - person Berk Koç; 13.10.2015
comment
Попробуйте добавить третий параметр 'false' в get_post_meta(get_the_ID(),'key-2') -> get_post_meta(get_the_ID(),'key-2',false), иначе он вернет массив :) (я редактировал полный код) - person esedeerre; 14.10.2015