get_posts_by_author_sql()
Получает WHERE часть SQL запроса, в котором будет учитываться статус записи 'private' для авторизованных пользователей.
Основа для: count_many_users_posts(), count_user_posts()
Хуки из функции
Возвращает
Строку
. WHERE часть SQL запроса.
Использование
get_posts_by_author_sql( $post_type, $full, $post_author, $public_only );
- $post_type(строка/массив) (обязательный)
- Тип поста или массив типов постов.
- $full(логический)
Вернуть полную часть SQL запроса содержащую WHERE, или без него.
- true
WHERE ( ( post_type = 'post' AND ( post_status = 'publish' OR post_status = 'private' ) ) )
- false
( ( post_type = 'post' AND ( post_status = 'publish' OR post_status = 'private' ) ) )
По умолчанию: true
- true
- $post_author(число)
- Добавить в запрос ID автора вместо ID текущего пользователя:
post_author = $post_author
.
По умолчанию: null - $public_only(логический)
- Вернуть только публичные посты (public). Пропустить проверку на статус 'private' для текущего пользователя, т.е. для текущего юзера все приватные посты не попадут в запрос.
По умолчанию: false
Примеры
#1 Демонстрация использования
$where = get_posts_by_author_sql( 'post' ); echo $where; // Авторизован: WHERE ( ( post_type = 'post' AND ( post_status = 'publish' OR post_status = 'private' ) ) ) // Не авторизован: WHERE ( post_type = 'post' AND ( post_status = 'publish' ) ) // Получим ID поста с заголовком "Hello world!" global $wpdb; $query = "SELECT ID FROM $wpdb->posts $where AND post_title = %s"; $post_id = $wpdb->get_var( $wpdb->prepare( $query, 'Hello world!' ) );
Заметки
- Смотрите: get_private_posts_cap_sql()
- Global. wpdb. $wpdb WordPress database abstraction object.
Список изменений
С версии 3.0.0 | Введена. |
С версии 4.3.0 | Introduced the ability to pass an array of post types to $post_type. |