• Решено philll1234

    (@philll1234)


    Здравствуйте! Сегодня все утро ищу вариант, чтобы можно было вывести записи, где 0 комментариев. Везде есть готовые решения только по выводу записей где больше 1 комментария, но мне нужно полностью наоборот((

    Если кратко:

    На сайте есть рубрики (образно, по 100-200 записей в каждой рубрике).

    Хочу сделать так, чтобы можно было вывести все записи из нужной рубрики, где сейчас нет ни одного комментария (т.е. 0 комментариев).

    Т.е. если таких записей без комментариев 10 штук, то чтобы их можно было вывести на главной странице. НО когда кто-то напишет хотя бы 1 комментарий в любой из этих 10 статей, чтобы на главной сразу выводилось 9 записей .

    Заранее спасибо за любую помощь!

    • Тема изменена 1 год, 4 месяца назад пользователем philll1234.
    • Тема изменена 1 год, 4 месяца назад пользователем philll1234.
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Добрый день.

    Могу предложить подумать над таким кодом:

    <?php
    $category_id = 1; // ID нужной категории
    $posts = get_posts(array(
        'category' => $category_id,
        'posts_per_page' => -1 // -1 означает вывод всех постов в категории
    ));
    
    $new_posts = array(); // здесь будут храниться записи без комментариев
    
    foreach ($posts as $post) {
        $comments_number = get_comments_number($post->ID);
        if ($comments_number == 0) {
            array_push($new_posts, $post);
        }
    }
    
    if (count($new_posts) == 0) {
        echo 'Нет записей без комментариев';
    } else {
        foreach ($new_posts as $post) {
            // здесь выводим информацию о посте
            echo '<h2>' . $post->post_title . '</h2>';
            echo '<p>' . $post->post_content . '</p>';
        }
    }
    ?>

    Данный код выводит на страницу заголовок и содержимое каждой записи из нужной категории, в которых нет комментариев. Если таких записей нет, то выводится сообщение «Нет записей без комментариев».

    Этот код можно под ваши нужды адаптировать как угодно.

    Удачи…

    Спасибо большое за подсказку! Только что протестировал, все выводится, только ссылка не кликабельная… Может вы можете подсказать, какую информацию изучить, может видеоуроки, как эта тема, которую вы использовали в коде, вообще называется правильно, чтобы в поиск ввести и изучить? Напишите пожалуйста, если не сложно..

    Ссылки там ни какой и нет.

    Если я вас правильно понял ссылка на запись вам надо:

    $category_id = 1; // ID нужной категории
    $posts = get_posts(array(
        'category' => $category_id,
        'posts_per_page' => -1 // -1 означает вывод всех постов в категории
    ));
    
    $new_posts = array(); // здесь будут храниться записи без комментариев
    
    foreach ($posts as $post) {
        $comments_number = get_comments_number($post->ID);
        if ($comments_number == 0) {
            array_push($new_posts, $post);
        }
    }
    
    if (count($new_posts) == 0) {
        echo 'Нет записей без комментариев';
    } else {
        foreach ($new_posts as $post) {
            // здесь выводим информацию о посте с url записи
            echo '<h2><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></h2>';
            echo '<p>' . $post->post_content . '</p>';
        }
    }

    ipsoltl (@ipsoltl) спасибо большое, очень помогли, думаю немного что-нибудь еще сам подправлю, будет вообще идеально))

    Хорошо.

    Только что доделал наконец-то код, благодаря вашей помощи.

    Получился этот код, возможно кому-то еще пригодится)

    (в дополнение к прошлому, идет поиск по вхождению определенного слова в title / заголовке), и выводит уже их…

    <?php
    $category_id = 9; // ID нужной категории
    $posts = get_posts(array(
        'category' => $category_id,
        'posts_per_page' => -1,
         'order' => 'ASC',
         'orderby' => 'title'
    ));
    
    $new_posts = array(); // здесь будут храниться записи без комментариев
    
    
    
    foreach ($posts as $post) {
        if (strpos($post->post_title, "МСК+1") === false) // <<<==== вот этот блок
            continue;
    
        $comments_number = get_comments_number($post->ID);
        if ($comments_number == 0) {
            array_push($new_posts, $post);
        }
    }
    
    
    
    
    
    if (count($new_posts) == 0) {
        echo 'Нет записей без комментариев';
    } else {
        foreach ($new_posts as $post) {
            // здесь выводим информацию о посте с url записи
            echo '<h5><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></h5>';
        }
    }
    ?>
    

    Хорошо. Поставьте статус: Решена.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Вывод записей, в которых 0 комментариев» закрыта для новых ответов.