не выводит данные в цикл php из wp

109
10 декабря 2020, 01:20

Вывожу данные из бд wp по услвию, для вывода списка постов в которых роль узера выбрана для изучения, но отсутствующих в таблице с отметкой:

global $wpdb;
$user_id = get_current_user_id();
$user_meta=get_userdata($user_id);
$user_roles=$user_meta->roles;
$role = $user_roles[0];
echo $role;
$results_ht_kb = $wpdb->get_results ( "
                select  id, post_status, post_type, post_title, guid
                from    wp_posts
                where   wp_posts.post_status = 'publish'
                    and wp_posts.post_type = 'ht_kb'
                    and wp_posts.id in (select post_id from wp_postmeta from meta_key = '_members_access_role' and meta_value = '$role')
                    and wp_posts.id not in (select post_id from wp_hkb_voting where user_id = '$user_id')
                    " );

foreach ( $results_ht_kb as $result_ht_kb)
            {
                echo '<a href="'.$result_ht_kb->guid.'">';
                echo $result_ht_kb->post_title; 
                echo '</a><br>'; 
            }

Ничего не показывается. Почему?

Answer 1
$results_ht_kb = $wpdb->get_results ( "
SELECT DISTINCT p.post_title, p.guid
from            wp_posts p
INNER JOIN      wp_postmeta pm ON p.id = pm.post_id
LEFT JOIN       wp_hkb_voting v ON (p.id = v.post_id 
                                and v.user_id = '$user_id')
WHERE           p.post_status = 'publish'
        and     p.post_type = 'ht_kb'
        and     pm.meta_key = '_members_access_role'
        and     pm.meta_value = '$role'
        and     v.user_id is null
                    " );

работает. если будут предложения улучшить, буду рад

READ ALSO
Как скрыть середину текста разной длины?

Как скрыть середину текста разной длины?

Имеем следующее (пример):

132
Как лаконично оформить код?

Как лаконично оформить код?

Есть вот такая небольшая функцияЕсть ли способ сделать её более ёмкой и производительной? Может другой конструкцией (не if else) или по-другому...

113
Подключение google recaptcha

Подключение google recaptcha

Есть форма на странице indexphp В форме данные для ввода (логин и пароль) и recaptcha

127
Yii2 как правильно написать запрос с Inner join?

Yii2 как правильно написать запрос с Inner join?

По сути я хочу написать запрос

100