Могу ли я добавить ID в массив $args? Мне нужно проверить, существует ли настраиваемое поле пары «ключ-значение» для конкретного сообщения. Теперь он проверяет, существует ли пара "ключ-значение" в каком-либо посте. Или мне нужно выполнить запрос, а затем проверить мое значение в возвращенном массиве?

    $args = array(
     'post_type' => 'post',
     'post_status' => 'publish',
     'ID' => $_POST['post_id'],
     'meta_query' => array(
             array(
                     'key' => 'claim',
                     'value' => $user_ID
             )
     )
    );

    // perform the query
    $query = new WP_Query( $args );
    $vid_ids = $query->posts;

    if ( empty( $vid_ids ) ) {
         add_post_meta( $_POST['post_id'], 'claim', $user_ID );
    }else{
        echo "sorry";
    }
0
Ciprian 27 Фев 2016 в 17:43

2 ответа

Лучший ответ

См. Запись Кодекса для параметров сообщения / страницы для WP_Query (). Вы можете передать идентификатор одного сообщения с этим

$query = new WP_Query( array( 'p' => 7 ) );

Если вы хотите передать несколько идентификаторов сообщений, используйте

 $myarray = array('100', '222');

$args = array(
   'post_type' => 'post',
   'post__in'      => $myarray
);
// The Query
$the_query = new WP_Query( $args );
2
Krishnadas PC 27 Фев 2016 в 14:50

Используйте get_post_meta, чтобы получить значение настраиваемого поля для вашего объекта.

$claims=get_post_meta($ID,'claim');
$exists=false;    
if(count($claims)>0)
{
    foreach($claims as $claim)   
    {
        if($claim==$user_ID)
        {
            $exists=true;
            break;
        }
    } 
}
if(!$exists)
{
    add_post_meta( $_POST['post_id'], 'claim', $user_ID );
}
0
Igor Yavych 27 Фев 2016 в 15:15