• Как сделать сортировку постов по последнему комментарию?

    дак Вы хотябы скопируйте код что я написал и впихните в любое место Вашего шаблона. А потом решите может Ваш вывод убрать или оба оставить... уж простите. но я не могу решить за Вас куда его вставлять...Но я так понимаю вместо Вашего вывода вставлять нужно и стили прописывать (оформлять). потыкайте в разные места, где понравится там и оставте....
  • Как сделать сортировку постов по последнему комментарию?

    $args=array(
        'status'=>'approve',
        'order'=>'DESC'//определяемся с направлением сортировки
    );
    $comments=get_comments($args);//получаем массив комментариев согласно сортировки
    $ids=array();//создаем пустой массив
    foreach($comments as $comment){//перебираем массив комментариев.
         $post=get_post($comment->comment_post_ID);
    		 if(!in_array($post->ID,$ids)){//если в массиве $ids нет айди поста комментария, то отправляем его туда в месте с заголовком (можно только айди). Таким образом избавимся от повтора идентификатора в массиве
    			 $ids[$post->ID]=$post->post_title;
    		 }}
    foreach($ids as $id=>$tit){//делаем что хотим с итоговым массивом
         echo "id записи - $id, заголовок записи - $tit<br/>";
    		 }

    последний:
    ................................................
    $ids=array();//создаем пустой массив
    foreach($comments as $comment){//перебираем массив комментариев.
         $post=get_post($comment->comment_post_ID);
    		 if(!in_array($post->ID,$ids)){//если в массиве $ids нет айди поста комментария, то отправляем его туда в месте с заголовком (можно только айди). Таким образом избавимся от повтора идентификатора в массиве
    			 $ids[]=$post->ID;
    		 }}
    echo get_post($ids[0])->post_title;

    плюс цитата:
    echo get_post($ids[0])->post_title.'<br/>'.get_the_excerpt($ids[0]);

    обратите внимание на то, что будут выводиться данные от последнего комментария. Т.к. Вы не так давно задавали вопрос «Как скрыть комментарии с будущей датой публикации». тобишь, если такие комментарии будут скрытые, то их данные будут выведены.
    В этом случае используйте код для проверки комментария из Вашего вопроса «Как скрыть комментарии с будущей датой публикации»:
    foreach($comments as $comment){//перебираем массив комментариев.
         $post=get_post($comment->comment_post_ID);
    $d='Ymd';//формат год месяц день
    $datCom=get_comment_date($d);//получаем дату комментария по формату
    $realD=date('Ymd');//текущая дата в том же формате
    $res=$realD-$datCom;//получаем разницу
    if($res>=0){
    		 if(!in_array($post->ID,$ids)){//если в массиве $ids нет айди поста комментария, то отправляем его туда в месте с заголовком (можно только айди). Таким образом избавимся от повтора идентификатора в массиве
    			 $ids[]=$post->ID;
    }}}
  • Как скрыть комментарии с будущей датой публикации?

    Как вариант обрамите комментарии в шаблоне (comments.php) условиями, в которых просто сравниваете текущую дату с датой публикации
    $d='Ymd';//формат год месяц день
    $datCom=get_comment_date($d);//получаем дату комментария по формату
    $realD=date($d);//текущая дата в том же формате
    $res=$realD-$datCom;//получаем разницу
    if($res>=0){?>//далее делаем условие при выводе спика комментариев, если текущая дата больше, то он будет отображен
    <li class="<?php echo $oddcomment.'VAB'; ?>" id="li-comment-<?php comment_ID();?>">
    <div id="comment-<?php comment_ID();?>">
    	<div class="comment-author vcard">
    ......ну и далее код по выводу комментария
    }

    если нужна точность до секунд меняем формат с учетом часов минут секунд
    $d='YmdHis';//формат год месяц день
  • Неправильный текст ошибки при регистрации в WordPress?

    просто вставил Ваш код неглядя5d3cb225a3b71723823423.jpeg
    у меня свои скрипты для формы авторизации и не мало... не мешают...регистрация проходит успешно. В выложеном коде нет проблем...
  • Как подключить функционал при определённом шаблоне записи WP?

    Red_Klop, не за что... я тоже что-то в голове приобрел за эту дискуссию))) как минимум больше вариантов решения...
  • Как подключить функционал при определённом шаблоне записи WP?

    а я и не подумал об этом....
    $post_2 = get_page_template_slug($post->ID);
    прикольно...
    добавте в ответы и свой вариант как решение обязательно
  • Как подключить функционал при определённом шаблоне записи WP?

    короче вот Вам костыль:
    убирайте Вашу проверку. Далее добавте к вашим радиокнопкам
    <input id="crutch" type="text" style="width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1;" required="required"/>

    прям рядом рядом....))
    добавте всем радиокнопкам одинаковый класс например (crutch):
    <input name="dzen1" type="radio" class="crutch">
    <input name="dzen2" type="radio" class="crutch">
    <input name="dzen3" type="radio" class="crutch">

    теперь скрипт впихните куда-нибудь
    jQuery(document).ready(function($){	
    $('.crutch').click(function(){$('#crutch').removeAttr('required');});
    });

    пока на радио кнопку не тыкнут спрятаное поле будет обязательным. по нажатию атрибут required будет удален...
    5d3830896ae1a365459760.jpeg
  • Как подключить функционал при определённом шаблоне записи WP?

    вы не сможете сделать проверку через хук функцию
    add_filter( 'preprocess_comment', 'comm_rating_require_rating' );
    function comm_rating_require_rating( $commentdata ) {


    для

    school_template.php

    потому что все, что вы напишите в этой функции будет обрабатывать wp-comments-post.php
    а wp-comments-post.php это не school_template.php
  • Как подключить функционал при определённом шаблоне записи WP?

    вам надо свой зарегистрировать тип чтобы отделить от стандартных Ваш шаблон
  • Как подключить функционал при определённом шаблоне записи WP?

    post_type == 'page'
    это стандартные страницы их не надо регистрировать они есть
    5d38254734aac868701657.jpeg
    как и post_type == 'post'
    5d3825968ffb6951481766.jpeg
  • Как подключить функционал при определённом шаблоне записи WP?

    Сначало регистрируете новый тип Например (vabcarousel):
    5d381e618210e496141079.jpeg
    Далее в Вашем шаблоне добавте строку (#Template post type: тут Ваш зарегистрированный тип) Например (vabcarousel):
    5d381ec4abca9855320000.jpeg
    Далее заходим в админку и в ней создаем запись:
    5d381f06a209e933521874.jpeg
    Указываем наш шаблон для записи:
    5d381f1c965f9791674672.jpeg

    далее к нашему шаблону добавляем поля Например:
    add_action('comment_form_logged_in_after','add_custom_fields');
    add_action('comment_form_after_fields','add_custom_fields');
    function add_custom_fields(){
    if(!is_page_template('school_template.php')){return;}
    if(is_page_template('school_template.php')){

    и в проверке указываете Ваш тип постов в моем случае на скрине vabcarousel
    add_filter( 'preprocess_comment', 'comm_rating_require_rating' );
    function comm_rating_require_rating( $commentdata ) {
      $post = get_post( $commentdata['comment_post_ID'] );
    
      if( $post->post_type == 'vabcarousel' ){

    надеюсь так будет понятней.... у меня так 2 формы созданы все работает....
  • Как подключить функционал при определённом шаблоне записи WP?

    school_template.php это просто шаблон
    сюда надо написать тип поста который вы зарегистрируете
    кодекс
    kama
    ....
    вот скажите, если написать вот так:
    add_filter( 'preprocess_comment', 'comm_rating_require_rating' );
    function comm_rating_require_rating( $commentdata ) {
      $post = get_post( $commentdata['comment_post_ID'] );
    
      if( $post->post_type == 'page' ){//предполагается, что это новый тип поста, к которому вы вывели отдельный шаблон комментария с Вашим рейтингом
      if (! isset( $_POST['rating'] ) || 0 === intval( $_POST['rating'] )){//это нужно заменить на Вашу проверку
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
      }
      if (! isset( $_POST['rating_1'] ) || 0 === intval( $_POST['rating_1'] )){//это нужно заменить на Вашу проверку
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
      }
        if (! isset( $_POST['rating_2'] ) || 0 === intval( $_POST['rating_2'] )){//это нужно заменить на Вашу проверку
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
      }
        if (! isset( $_POST['rating_3'] ) || 0 === intval( $_POST['rating_3'] )){//это нужно заменить на Вашу проверку
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
      }  
      }
      return $commentdata;
    }

    ключевой момент
    if( $post->post_type == 'page' ){
    то у Вас уже должно все заработать... просто, если у Вас на страницах разрешены комментарии, возникнут новые проблемы. Для этого и нужен новый тип поста..
  • Как подключить функционал при определённом шаблоне записи WP?

    Код для проверки в предыдущем комментарии должен находится за пределами проверки:
    if ( is_page_template('school_template.php')) {
    
    }
  • Как подключить функционал при определённом шаблоне записи WP?

    Если Вам нужна Ваша проверка, то необходимо создать новый тип поста, где для начала проверяем относится ли данный комментарий к этому типу постов. пишу на примере страниц (type page)
    add_filter( 'preprocess_comment', 'filter_function_name_1573' );
    function filter_function_name_1573( $commentdata ) {
    	$post = get_post( $commentdata['comment_post_ID'] );
    
    	if( $post->post_type == 'page' ){//предполагается, что это новый тип поста, к которому вы вывели отдельный шаблон комментария с Вашим рейтингом
    	if (empty($_POST['yorfamily'])){//это нужно заменить на Вашу проверку
    		wp_die(__('Ты отфильтрован!','VAB'));
    	}}
    	return $commentdata;
    }

    и не надо писать при проверке каждого поля - return $commentdata; пишите в самом конце один раз
  • Как подключить функционал при определённом шаблоне записи WP?

    Red_Klop, дак вот в этой проверке и все дело, а не в том коде в начале.....
    используйте код выше что я написал
    затем своим полям рейтинга просто добавить чудо атрибут required="required"
    а это совсем уберите:
    add_filter( 'preprocess_comment', 'comm_rating_require_rating' );
    function comm_rating_require_rating( $commentdata ) {
        if ( ! isset( $_POST['rating'] ) || 0 === intval( $_POST['rating'] ) )
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
        return $commentdata;
      if ( ! isset( $_POST['rating_1'] ) || 0 === intval( $_POST['rating_1'] ) )
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
        return $commentdata;
      if ( ! isset( $_POST['rating_2'] ) || 0 === intval( $_POST['rating_2'] ) )
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
        return $commentdata;
      if ( ! isset( $_POST['rating_3'] ) || 0 === intval( $_POST['rating_3'] ) )
        wp_die('Ошибка: Вы не добавили оценку. Нажмите кнопку «Назад» в своем веб-браузере и повторно отправьте свой комментарий с оценкой.');
        return $commentdata;
    }

    т.е. для своего темплейта добавте только поля
    в сейве сохраняйте типо:
    add_action('comment_post','save_add_custom_fields');
    function save_add_custom_fields($comment_id){
    if(!empty($_POST['yorfamily'])){$yorfamily=sanitize_text_field($_POST['yorfamily']);add_comment_meta($comment_id,'yorfamily',$yorfamily);}

    а вместо проверки атрибут обязательных полей
  • Как сделать чтобы категории и подкатегории товаров были раскрыты в сайдбаре?

    Скорее всего автор темы(плагина, который Вы пользуете) использует, например, css, которые их прячут. Ищите в инженерной панели ответы. пример отсюда :
    А css случаем для редактора не прописаны (list-style:none; или list-style-type:none;)? глянте в инженерной панели
    ... если стили прописаны, то и должно показать в каком файле и в какой строке...
    типо:
    5d32198ce89a6836673641.jpeg
  • Как вывести запись на главную страницу Wordpress?

    Можете не оформлять в кастомайзере, а просто взять код разметки и указать id страницы вместо значения опции и задать css как Вам нравится....
  • Как получить главную страницу сайта (что именно имею ввиду напишу в описании)?

    Доброго времени суток. речь идет о данных настройках:
    5d34a48e86500123336791.jpeg
    Верно ли я Вас понял?
  • Почему wordpress не сохраняет опции плагина?

    1. Почему у Вас регистрируется опция one_floor_group, а в атрибуте name build_calc_one_floor?
    2. Рекомендую создать значение опций по умолчанию(во избежание ошибок). Пример:
    add_action('after_setup_theme','vab_default_options');
    if(!function_exists('vab_default_options')){
    	function vab_default_options(){
    		$options=get_option('one_floor_group'); 
    		if(false===$options){
    			$options=array('Options'=>'default');
    			update_option('one_floor_group',$options );
    		}}}

    3. Необходимо проверять наличие опции в базе и задавать значения вашим полям если есть эти самые значения иначе при внесении изменений в одном поле будут сброшены значения другого и избавиться от ошибок(нотайсов).
    4. Ещё одна причина вы забыли добавить рядом с settings_fields( 'one_floor_group' ); обязательную функцию wp_nonce_field(); - Получает или выводит скрытое одноразовое поле (nonce) для формы. Одноразовое поле (nonce) нужно для проверки передаваемых данных формы, чтобы убедиться, что данные были отправлены с текущего сайта, а не от куда-то еще. Такое поле не дает полной защиты, но защищает в большинстве случаев. Использовать проверочное поле в формах обязательно!
    Присутствуют нотайсы

    Ваш код у меня работает согласно исправлениям указанным выше.