8ответ(ов) в теме
garry
не в сети 18 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2924
1
15:30
Версия WP-Recall: 16

Приветствую.
Взял за пример один плагин и ковыряюсь, но не могу понять один момент.
Все работает как надо, но шорткод затягивает к себе начало статьи и низ, то есть все что выше и ниже контента.
Код длинный, но я его приведу и возможно в нем косяк, который я не вижу, так как уже сам вывод переделал, а остальное замылилось. Как можно такого избежать, что бы не только контент, но и все остальное в него не попадало?

add_shortcode('hrf_faqs', 'fn_hrf_faqs');

function fn_hrf_faqs($attr)

{
if (!(is_amp_endpoint())) {   
   $is_new_install_hrf = get_option('hrf_installed_status');
   
   $faq_params = shortcode_atts( array(
        'category' => '',
        'title' => '',
    ), $attr );
    
   $html = '<div class="hrf-faq-list" itemscope itemtype="https://schema.org/FAQPage">';
   $is_faq = true;
   
   if( $faq_params['title'] != ''){
   $html .= '<strong class="frq-main-title">'.$faq_params['title'].'</strong>';
   
   }
   $head_tag  = get_option('hrf_question_headingtype','h3');
   $faq_args = array(
        'post_type'      => 'hrf_faq',
        'post_status'    => 'publish',
        'posts_per_page' => -1,
        'orderby'        => 'menu_order',
        'order'          => 'ASC',
   );
   
   if( $faq_params['category'] != '' ){
      $faq_args['category_name'] = $faq_params['category'];
   }
   
   $faq_query = new WP_Query( $faq_args );

   if( $faq_query->have_posts() ): 
      while( $faq_query->have_posts() ): 
         $faq_query->the_post();

         $html .= '<div data-block="accordion" class="hrf-entry" id="hrf-entry-'.$faq_query->post->ID.'" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
		 <div data-block="item" data-title="'.get_the_title().'">
                      <'.$head_tag.' class="hrf-title close-faq" data-content-id="hrf-content-'.$faq_query->post->ID.'" itemprop="name"><span></span><hr><small>'.get_the_title().'</small><hr></'.$head_tag.'>
                     <div class="hrf-content" id="hrf-content-'.$faq_query->post->ID.'" itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
					 <div itemprop="text">'.apply_filters( 'the_content', get_the_content() ).'</div></div>
                 </div></div>';


if ( $is_new_install_hrf == 'new') {

$endofhtml = '</div>';
}else { $endofhtml = '</div>';}
     
      endwhile;
   else:
      $html .= "No FAQs Found";
      $endofhtml = '</div>';
   endif;
   wp_reset_query();
  $html .= $endofhtml;

   return $html;
   }
}

Наверняка туплю и есть простое решение, но не вижу.

Редакции сообщения
16.03.2020 15:31garryПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 11 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18639
2
15:43

Привет Игорь.

garry сказал(а)
но шорткод затягивает к себе начало статьи и низ, то есть все что выше и ниже контента.

- визуально покажи. Я не понял что значит.

Верстка точно верная? дивы где надо выводятся и закрываются?

А может дело в фильтре apply_filters( 'the_content' что у тебя внутри инициализируется - висит на нем что-то где-то извне и влияет

1
Вова (Otshelnik-Fm)
не в сети 11 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18639
3
15:45

А чтоб с проверками на закрытие дива не мутить - сделай так:

 return '<div class="hrf-faq-list" itemscope itemtype="https://schema.org/FAQPage">'.$html.'</div>';

и от ёлочек в проверке можно будет отказаться и это убрать: $endofhtml = '</div>';

1
garry
не в сети 18 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2924
4
15:47

Спасибо, Владимир, я сейчас не могу показать, тестовый переставлю и по позже покажу.
Буду пробовать твои подсказки.

0
garry
не в сети 18 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2924
5
15:57

А может дело в фильтре apply_filters( 'the_content' что у тебя внутри инициализируется - висит на нем что-то где-то извне и влияет

Да, видимо ф фильтре дело. На черновике боевого сайта проверил, видимо так и есть.

Редакции сообщения
16.03.2020 15:57garryПричина: не указано
0
garry
не в сети 18 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2924
6
16:06

Он все хуки использует получается, затягивает

Редакции сообщения
16.03.2020 16:06garryПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 11 часов
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18639
7
16:46

Можно вообще выкинуть данный apply_filters и прогнать контент только через wpautop и convert_smilies - в принципе что еще нужно? Переносы и смайлы - я так делал у себя

1
garry
не в сети 18 часов
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2924
8
17:11

Дружаев Владимир (Otshelnik-Fm) сказал(а)
Можно вообще выкинуть данный apply_filters и прогнать контент только через wpautop и convert_smilies - в принципе что еще нужно? Переносы и смайлы - я так делал у себя

Да, ты прав, затея не оправдывает геморой...так и сделаю по твоему совету. Спасибо еще раз.

Редакции сообщения
16.03.2020 17:12garryПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме