Intereting Posts
Как я могу получить страницу или почтовый язык, когда я использую wpml? Как расширить тег и категорию «Связанные сообщения» в пользовательский post_type, если первые 2 условия не имеют сообщений Как отлаживать: мой плагин мешает моей теме различный способ достижения stylesheet_url «О нас», «контактные» разделы должны быть опубликованы в статье (публикации) или странице на простом маленьком бизнес-сайте? Форма «Спросить вопрос» для заголовка страницы, в настоящее время используется анспресс Trigger save as draft при загрузке изображения Сертификат SSL и WordPress Разрешить доступ к странице только для администраторов. Существуют ли официальные или неофициальные рекомендации по стилю виджета? Как удалить пользовательский тип сообщения и добавить категорию и имя публикации Получить идентификатор категории внутри шаблона категории Должны ли мы явно помещать в очередь jQuery и основную таблицу стилей нашей темы? Какой метод использовать для вызова REST API? wp_enqueue_script и wp_enqueue_style не загружают контент по https

Отображать текст, если текущий пользователь написал 1 или более сообщений в настраиваемом типе сообщений

Я пытаюсь показать разные вещи новым пользователям, которые не создали сообщение против пользователей, которые создали сообщение.

Я пробовал это, но он не работал для пользовательских типов сообщений (только для обычных сообщений), и он не учитывает черновики или ожидающие сообщения:

<?php if (count_user_posts(1)>=1) { blah blah blah } else {Welcome, blah blah blah }; ?> 

Solutions Collecting From Web of "Отображать текст, если текущий пользователь написал 1 или более сообщений в настраиваемом типе сообщений"

Привет @Carson:

Простой функцией для решения того, что вы запрашиваете, может быть функция yoursite_user_has_posts() которая использует встроенный класс WP_Query :

 function yoursite_user_has_posts($user_id) { $result = new WP_Query(array( 'author'=>$user_id, 'post_type'=>'any', 'post_status'=>'publish', 'posts_per_page'=>1, )); return (count($result->posts)!=0); } 

Затем вы можете вызвать его из своей темы следующим образом:

 <?php $user = wp_get_current_user(); if ($user->ID) if (yoursite_user_has_posts($user->ID)) echo 'Thank you for writing!'; else echo 'Get Writing!'; ?> 

см. Best Collection of Code для вашего файла functions.php :

 function atom_count($user_id, $what_to_count = 'post') { global $wpdb; $where = $what_to_count == 'comment' ? "WHERE comment_approved = 1 AND user_id = {$user_id}" : get_posts_by_author_sql($what_to_count, TRUE, $user_id); $from = "FROM ".(($what_to_count == 'comment') ? $wpdb->comments : $wpdb->posts); $count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) {$from} {$where}")); return $count; } 

если вы хотите, чтобы это количество всех сообщений, независимо от типа и статуса, измените get_posts_by_author_sql() на "WHERE post_author = '{$user_id}'"

не тестировал это, но он должен работать …

Это должно делать то, что вы хотите …

 <?php if ( 0 == count_user_posts( get_current_user_id(), "CUSTOMPOSTTYPE" ) && is_user_logged_in() ) { ?> Do something if they have no posts <?php } elseif ( 0 !== count_user_posts( get_current_user_id(), "CUSTOMPOSTTYPE" ) && is_user_logged_in() ) { ?> Do something else if they do have a post <?php } ?>