@bratok191

Как сделать, чтобы в get_posts() выводились только записи, если есть вхождение нужного слова в заголовке (title) записи?

Сейчас пишу код для сайта (чтобы выводились записи на странице wordpress).
Все работает. Кроме одного - не могу понять, как дополнить код, чтобы выводились все записи, где есть например фраза в title ("МСК+0").
Возможно ли это реализовать вообще? Я в этом не особо разбираюсь, может подскажете, как лучше дополнить текущий код?

<?php
$category_id = 9; // 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 '<h5><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></h5>';
    }
}
?>
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
@sepetov
Программист Navision, программист PHP
Видимо, нужно этот ваш цикл:
foreach ($posts as $post) {
    $comments_number = get_comments_number($post->ID);
    if ($comments_number == 0) {
        array_push($new_posts, $post);
    }
}

Доработать вот так:
foreach ($posts as $post) {
    if (strpos($post->post_title, "МСК+0") === false) // <<<==== вот этот блок
        continue;

    $comments_number = get_comments_number($post->ID);
    if ($comments_number == 0) {
        array_push($new_posts, $post);
    }
}

Это хотели?
Ответ написан
@pantsarny
В get_posts аргументы добавьте аргумент s с необходимым вхождением в заголовок
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bratok191 Автор вопроса
Спасибо за помощь.
Итоговое готовое решение:

<?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>';
    }
}
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы