Задать вопрос
  • Почему поиск Wordpress работает некорректно?

    @tbalero Автор вопроса
    *По коду: *на обоих сайтах в исходные файлы вордпресса изменения не вносились. *на обоих сайтах используется одна и та же вордпресс-тема (одна и та же вордпресс-тема одной и той же версии)
  • Почему поиск Wordpress работает некорректно?

    @tbalero Автор вопроса
    Подскажите плиз, что конкретно нужно проверить в Базе данных? - *Посмотрел в базе данных первого сайта - таблица с постами есть, записи в таблице присутствуют. Кодировка - utf8.
  • Как получить цифру количества записей из поля Relationship field (ACF) для записей, имеющих "обратную" ("reverse") связь?

    @tbalero Автор вопроса
    Павел Чесноков, благодарю за помощь. *При использовании предложенного кода - возникает ошибка на сервере, страницы сайта не отображаются.

    Удалось решить задачу с помощью такого кода (см. ниже):

    Однако в данном случае есть еще один вопрос, возможно вы сможете подсказать: Как вывести этот список записей пользовательского типа “producers” - в порядке, отсортированном по найденной цифре количества связанных записей произвольного типа “movies” (связанных с помощью поля "movies_of_this_producer" типа Relationship field)?
    (То-есть, вывести записи пользовательского типа “producers” в порядке возрастания/или в порядке убывания - на основе сортировки по найденной цифре количества связанных записей произвольного типа “movies”).

    *В корректном коде ниже присутствует параметр:
    'orderby' => 'title',

    *Для сортировки по найденной цифре связанных записей - предполагаю, нужно вместо orderby' => 'title', - использовать такие параметры:
    'orderby' => 'meta_value_num',
    'meta_key' => 'movies_of_this_producer',

    *Однако, если пытаюсь использовать эти параметры (для сортировки записей типа “producers” по цифре связанных записей типа “movies”) - в результате список записей типа “producers” - не отображается вовсе.

    <?php
    $TESTrel_producers = new WP_Query( array(
        'post_type' => 'producers',
        'post__not_in' => array($post->ID),
        'posts_per_page' => 20,
        'orderby' => 'title', //change it if you want to order by something else
        'order' => 'ASC',
        'offset' => 0,
        ) );
    ?>
    
    <?php if( $TESTrel_producers ): ?>
    <div class="content_block_wrap two_columns_right col-md-6">
        <div class="content_block transparent_block_with_border">
            <div class="block_title">
                List of posts of custom post type “producers”, with number of related “movies” posts:
            </div>
            <ul>
                <?php
                    while ( $TESTrel_producers->have_posts() ) :
                $TESTrel_producers->the_post();
                ?>
    
                    <?php
                    $the_movies = get_posts(array(
                        'post_type' => array( 'movies' ), // uncomment it if you only want to get the result from movies post type
                        'posts_per_page' => -1,
                        'meta_query' => array(
                            array(
                                'key' => 'movies_of_this_producer', // name of custom field
                                'value' => '"' . get_the_ID() . '"', // matches exaclty "123", not just 123. This prevents a match for "1234"
                                'compare' => 'LIKE'
                            )
                        )
                    ));
                    ?>
    
                    <li class="content_item col-xs-12">
                        <a class="post_thumbnail" href="<?php echo get_permalink( $TESTrel_producers->ID ); ?>">
                            <?php echo get_the_post_thumbnail( $TESTrel_producers->ID, '90x60-thumb' ); ?>
                        </a>
    
                        <a href="<?php echo get_permalink( ); ?>"><?php echo get_the_title( ); ?></a>
                        
                        <span class="sm">Number of related posts:</span> <?php
                        echo $producer_count = count($the_movies);
                        ?>
    
                    </li>
                <?php
                endwhile;
                ?>
            </ul>
        </div>
    </div>
    <?php endif; ?>
    
    <?php
    wp_reset_postdata();
    ?>
  • Как получить цифру количества записей из поля Relationship field (ACF)?

    @tbalero Автор вопроса
    Павел Чесноков Павел, при использовании вашего варианта - вместо актуальных цифр выводятся нули. Создал отдельный вопрос, в котором указал примеры кода, которые пытаюсь использовать для решения данной задачи (*в случае с "прямой" связью они работают корректно; но в случае с "обратной" связью - ошибочно выводятся нули). - Посмотрите плиз: Как получить цифру количества записей из поля Relationship field (ACF) для записей, имеющих «обратную» ("reverse") связь? - возможно вы сможете подсказать решение с учетом представленных примеров кода.
  • Как в древовидных комментариях - в конкретном дочернем комментарии отобразить ссылку на родительский комментарий?

    @tbalero Автор вопроса
    Ilya Chase во фронтенде к комментариям первого уровня автоматически прописывается class "depth-1", к комментариям второго уровня (это дочерние комментарии по отношению к родительскому комментарию первого уровня) прописывается класс "depth-2", к комментариям третьего уровня (это дочерние комментарии по отношению к родительскому комментарию второго уровня) прописывается класс "depth-3", и т.д.

    Подскажите плиз, каким должен быть код с использованием GLOBALS['last_comment_id'] и $GLOBALS['depth'], определенных до вызова comments_template()
  • Как отобразить форму для ввода комментариев на странице записи произвольного типа?

    @tbalero Автор вопроса
    Дмитрий Королёв: да, отключил фильтр: и без фильтра в новых записях галочка стоит по умолчанию и форма для ввода комментариев отображается корректно.

    *По умолчанию галочка не проставилась только в уже созданных ранее записях (это и смутило изначально).

    То-есть тех двух пунктов, что вы в самом начале указали, - достаточно.

    Еще раз благодарю за помощь.
  • Как отобразить форму для ввода комментариев на странице записи произвольного типа?

    @tbalero Автор вопроса
    Дмитрий Королёв: Ок,

    Уточняющий вопрос: для записей произвольного типа - комментарии в принципе не подключаются по умолчанию?
    Или, например, при регистрации произвольного типа записи - возможно нужно добавить еще какой-то параметр, чтобы комментарии были бы сразу подключены по умолчанию?

    То-есть - является ли в данном случае использование фильтра wp_insert_post_data единственным решением? Или есть еще какое-нибудь стандартное решение? (чтобы на страницах записей произвольного типа - комментарии были бы сразу подключены по умолчанию)
  • Как отобразить форму для ввода комментариев на странице записи произвольного типа?

    @tbalero Автор вопроса
    Дмитрий Королёв: Фильтр wp_insert_post_data - сработал именно так, как нужно. Благодарю!
  • Как отобразить форму для ввода комментариев на странице записи произвольного типа?

    @tbalero Автор вопроса
    *В админке непосредственно на странице редактирования записи произвольного типа - отображается блок "Обсуждение". В нем есть два чекбокса: "Разрешить комментарии." ; "Разрешить обратные ссылки и уведомления."

    По умолчанию в чекбоксе "Разрешить комментарии." - галочка не поставлена.
    Если галочку поставить вручную - то тогда на странице записи произвольного типа "movies" форма для ввода комментариев отобразится корректно. Однако форма для ввода комментариев отобразится только на странице одной конкретной записи, для которой в админке вручную поставили галочку в чекбоксе "Разрешить комментарии.", а не на всех страницах записей произвольного типа "movies".

    Вопрос - как сделать, чтобы в чекбоксе "Разрешить комментарии." галочка была бы поставлена для всех записей произвольного типа "movies" ?
  • Как отобразить форму для ввода комментариев на странице записи произвольного типа?

    @tbalero Автор вопроса
    - В параметре 'supports' прописано 'comments'
    - Во вкладке "настройки обсуждения" галочку "Разрешить оставлять комментарии на новые статьи" снял и сохранил, затем снова поставил и сохранил.

    Однако в результате по-прежнему на отдельной странице записи типа "movies" вместо формы для ввода комментариев - отображается текст: Обсуждение закрыто.

    *Регистрация произвольного типа записей "movies" осуществляется с помощью кода (в файле functions.php):

    add_action('init', 'my_custom_init');
    function my_custom_init()
    {
    // Регистрация произвольного типа записей "movies"
    $labels = array(
    'name' => 'Фильмы', // Основное название типа записи
    'singular_name' => 'Фильм', // отдельное название записи типа movies
    'add_new' => 'Добавить новый',
    'add_new_item' => 'Добавить новый Фильм',
    'edit_item' => 'Редактировать Фильм',
    'new_item' => 'Новый Фильм',
    'view_item' => 'Посмотреть Фильм',
    'search_items' => 'Найти Фильм',
    'not_found' => 'Фильмов не найдено',
    'not_found_in_trash' => 'В корзине Фильмов не найдено',
    'parent_item_colon' => '',
    'menu_name' => 'Фильмы'
    );
    $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'has_archive' => true,
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','editor','thumbnail','excerpt','comments')
    );
    register_post_type('movies',$args);
    // Регистрация произвольного типа записей "movies"
    // end
    }
    // Добавляем фильтр, который изменит сообщение при публикации при изменении типа записи movies
    add_filter('post_updated_messages', 'movies_updated_messages');
    function movies_updated_messages( $messages ) {
    global $post, $post_ID;
    
    $messages['movies'] = array(
    0 => '', // Не используется. Сообщения используются с индекса 1.
    1 => sprintf( 'movies обновлено. Посмотреть запись movies', esc_url( get_permalink($post_ID) ) ),
    2 => 'Произвольное поле обновлено.',
    3 => 'Произвольное поле удалено.',
    4 => 'Запись movies обновлена.',
    /* %s: дата и время ревизии */
    5 => isset($_GET['revision']) ? sprintf( 'Запись movies восстановлена из ревизии %s', wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
    6 => sprintf( 'Запись movies опубликована. Перейти к записи movies', esc_url( get_permalink($post_ID) ) ),
    7 => 'Запись movies сохранена.',
    8 => sprintf( 'Запись movies сохранена. Предпросмотр записи movies', esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
    9 => sprintf( 'Запись movies запланирована на: %1$s. Предпросмотр записи movies',
    // Как форматировать даты в PHP можно посмотреть тут: php.net/date
    date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
    10 => sprintf( 'Черновик записи movies обновлен. Предпросмотр записи movies', esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
    );
    
    return $messages;
    }
    
    // показ раздела "помощь" для типа записей movies
    add_action( 'contextual_help', 'add_help_text', 10, 3 );
    
    function add_help_text($contextual_help, $screen_id, $screen) {
    //$contextual_help .= var_dump($screen); // используйте чтобы помочь определить параметр $screen->id
    if ('movies' == $screen->id ) {
    $contextual_help =
    'Напоминалка при редактировании записи movies:
    Указать нужную информацию.
    Если нужно запланировать публикацию на будущее:
    В блоке с кнопкой "опубликовать" нажмите редактировать дату.
    Измените дату на нужную, будущую и подтвердите изменения кнопкой ниже "ОК".
    ';
    } elseif ( 'edit-movies' == $screen->id ) {
    $contextual_help =
    'Это раздел помощи, показанный для типа записи movies' ;
    }
    return $contextual_help;
    }
  • Как отображать поле только тогда, когда оно заполнено?

    @tbalero Автор вопроса
    Игорь Воротнёв: изначально предложенный в вашем ответе код - сработал корректно. Подскажите плиз, как именно его нужно отредактировать, чтобы избежать возможных ошибок ("foreach надо поместить внутрить if а в нем проверять $cur_terms." - не ясно, как должна выглядеть данная конструкция)
  • Как отображать поле только тогда, когда оно заполнено?

    @tbalero Автор вопроса
    Спасибо, заработал такой код:

    <?php

    if(!empty($array)){

    $array = array();
    $cur_terms = get_the_terms( $post->ID, 'genres');
    foreach( $cur_terms as $cur_term ){
    $array[] = $cur_term->name;
    }
    $comma_separated = implode(", ", $array);

    echo 'Жанры:' . ' ' . $comma_separated . ''; // term1, term2, term3

    }

    ?>

    dk-web подскажите плиз, получившийся код - нормальный? или как-то может быть нужно его более правильно написать?
  • Как отобразить названия категорий (из произвольной таксономии) через запятую, но без запятой в конце?

    @tbalero Автор вопроса
    Максим Креативный: по первому вопросу корректно заработал немного измененный код - так названия категорий отображаются корректно без ссылок, через запятую, при этом без запятой в конце:

    <?php
    $array = array();
    $cur_terms = get_the_terms( $post->ID, 'genres');
    foreach( $cur_terms as $cur_term ){
    $array[] = $cur_term->name;
    }
    $comma_separated = implode(", ", $array);

    echo $comma_separated; // term1, term2, term3
    ?>

    Максим Креативный, благодарю за помощь!
  • Как отобразить названия категорий (из произвольной таксономии) через запятую, но без запятой в конце?

    @tbalero Автор вопроса
    Максим Креативный: на сколько я понимаю, в этой строке:

    $cur_terms = get_the_terms( $post->ID, 'genres');

    все категории уже собираются в массив $cur_terms (*и в первоначальном коде из текста вопроса - сами названия категорий уже выводятся корректно, через запятую, но отображается лишняя запятая после последнего названия категории. Не ясно как тут лишнюю запятую убрать, при этом чтобы названия категорий не исчезли бы.
  • Как отобразить названия категорий (из произвольной таксономии) через запятую, но без запятой в конце?

    @tbalero Автор вопроса
    Максим Креативный: в обновленном коде (в повторно обновленном) - также отображается только "запятая", а названия категорий не отображаются.
  • Как отобразить названия категорий (из произвольной таксономии) через запятую, но без запятой в конце?

    @tbalero Автор вопроса
    Максим Креативный: в обновленном коде - отображается только "запятая", а названия категорий не отображаются.