Вопрос

Мне нужно найти, существует ли пост с пользовательским полем x, равный Y в установке WordPress.

Должен ли я сделать это с помощью простого запроса SQL или есть что -то, что может помочь мне достичь его?

Это было полезно?

Решение

Вы можете использовать Wp_query(); Чтобы проверить это так:

$my_query = new WP_Query();
$my_query->query(array( 'meta_key' => 'X', 'meta_value' => 'Y'));
if ( $my_query->have_posts() ){

     //it exists

} else {
    //it's not here
}

Надеюсь это поможет.

Другие советы

Текущий путь будет чем -то вроде этого:

$posts = get_posts(array(
    'meta_key' => 'color',
    'meta_value' => 'blue',
));

if( !empty($posts) ) { // some posts found }

Просто обратите внимание, что в предстоящем запросе 3.1 для пользовательских полей значительно улучшен, и аргументы изменяются, см. Пользовательские параметры поля в кодексе.

Если вы хотите использовать это внешне (в соответствии с вашими комментариями), чтобы держать операцию дешевой, вы можете сделать что -то подобное.

<?php
// You'll need to make sure the path is correct here
include_once 'wp-config.php';
include_once 'wp-includes/wp-db.php';

// Of course update the following line with a more appropriate query
$result = $wpdb->get_results("SELECT * FROM $wpdb->posts"); 

print '<pre>';
print_r( $result ); // Remove and do whatever you need to do
print '</pre>';
?>

Загрузка wp-config.php а также wp-db.php должно быть достаточно, чтобы призвать $wpdb Методы для запроса БД для любых данных, которые вам нужны.

Дайте мне знать, если вам нужен пример SQL -запроса, чтобы получить сообщения на основе Meta.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top