Вывод блока в конце текста в определенной рубрике
-
Здравствуйте, уважаемые форумчане!
Опишу свою проблему, может кто знает ответ.
На сайте есть рубрика «Финансовое право», именно для этой рубрики я хочу выводить калькулятор в конце каждой статьи. Гуглил, ничего подходящего не смог найти.
Может есть какие-то плагины или ручной код.
Заранее спасибо!
-
Затруднения с условием «для одной категории» или вообще с выводом чего-то после контента записи?
Вывожу блок с калькулятором в конце текста с помощью плагина AdPlacer’s. Это без проблем. Не знаю, как вывести всё это дело только в одной категории.
Коль скоро речь идёт о материалах рубрики. то это записи. Обычно они выводятся в шаблоне single.php
В том месте шаблона, где выводится контент — текст записи, сразу после стоит вставить подобный код:
<?php if ( in_category(33) ): ?> тут выводите ваш калькулятор для рубрики с id=33 <?php endif(); ?>
Очевидно, у вас id рубрики может быть иным. Вставить всё это следует сразу после вывода
<?php the_content(); ?>
Вставляю в single.php после
<?php the_content(); ?>
<?php if ( in_category(52) ): ?> тут выводите ваш калькулятор для рубрики финансовое <?php endif(); ?>
К сожалению валится 500 ошибка =(((
Если не сложно, приведите весь текст вашего single.php.
Не получается, сайт зависает = (
Возможно код в function.php мешает.// Вставляем любой код выбранного после абзаца Вставляем РТБ блок после 19 абзаца add_filter( 'the_content', 'wpse_ad_content' ); function wpse_ad_content( $content ) { if( !is_single() ) return $content; $paragraphAfter = 19; //Введите номер абзаца, после которого вставляем. $content = explode ( "</p>", $content ); $new_content = ''; for ( $i = 0; $i < count ( $content ); $i ++ ) { if ( $i == $paragraphAfter ) { $new_content .= '<div>[ads-pc-2] [ads-mob-2] </div>'; } $new_content .= $content[$i] . "</p>"; } return $new_content; } // Вставляем любой код выбранного после абзаца Вставляем РТБ блок после 1 абзаца add_filter( 'the_content', 'wpse_ad_content1' ); function wpse_ad_content1( $content ) { if( !is_single() ) return $content; $paragraphAfter = 1; //Введите номер абзаца, после которого вставляем. $content = explode ( "</p>", $content ); $new_content = ''; for ( $i = 0; $i < count ( $content ); $i ++ ) { if ( $i == $paragraphAfter ) { $new_content .= '<div>[ads-pc-3] [ads-mob-3] </div>'; } $new_content .= $content[$i] . "</p>"; } return $new_content; }
Судя по всему, приведённый вами код добавляет те или иные блоки рекламы внутрь записей, после определённого (19 в вашем случае) абзаца. Только это не должно влиять на то, что выводится после вызова функции
the_content()
. Во всяком случае, приведённый вами кусок кода из functions.php влияет непосредственно на то, что выводится функциейthe_content()
. Ещё раз прошу показать вас текст файла single.php.<?php get_header(); echo do_shortcode('[ads-pc-1]'); echo do_shortcode('[ads-mob-1]'); $related_posts_html= $show_other_html= ''; ?> <!-- CONTENT===================================================== --> <section class="content"> <div class="container"> <div class="row"> <div class="<?= content_class() ?>"> <div class="single_articel"> <div class="left_side_share"> <noindex><?= $wpmfc['social-area-2'] ?></noindex> </div> <div class="mb10"> <?php if (function_exists('yoast_breadcrumb')) { yoast_breadcrumb('<p id="breadcrumbs">', '</p>'); } ?> </div> <?php if (have_posts()) { while (have_posts()) { the_post(); $this_post_id = get_the_ID(); $show_other_number = (is_numeric($wpmfc['show_other_number']) && $wpmfc['show_other_number'] > 0 && $wpmfc['show_other_number'] <= 3) ? $wpmfc['show_other_number'] : 3; $show_other_title = $wpmfc['show_other_title'] ? $wpmfc['show_other_title'] : 'Рекомендуем посмотреть'; $post_cat_arr = get_categoriest_post($this_post_id); //POST SEARCH COOUNTER setPostViews($this_post_id); if (get_the_tag_list()) { foreach (wp_get_post_tags($this_post_id) as $tag) { $post_tag_arr[] = $tag->term_id; } } if($post_tag_arr){ $query= new WP_Query(array('tag__in' => $post_tag_arr, 'post__not_in' => array($this_post_id), 'posts_per_page' => $show_other_number)); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); $related_posts[]= array('post_id'=> get_the_ID, 'post_title'=> get_the_title(), 'post_excerpt'=> get_the_excerpt(), 'post_thumbnail'=> get_post_image(get_the_ID(), 'slider_image_mini'), 'post_permalink'=> get_the_permalink()); } } else { // Постов не найдено } wp_reset_query(); wp_reset_postdata(); } //related posts if($related_posts){ foreach($related_posts as $related_post){ $related_posts_html.= ' <div class="col-lg-4 col-md-6 col-sm-6 col-xs-12"> <div class="sm_post_box"> <div class="post_thumbnail_wrap pull-left"> <a href="' . $related_post['post_permalink'] . '">' . $related_post['post_thumbnail'] . '</a> </div> <div class="post_title"> <a href="' . $related_post['post_permalink'] . '">' . $related_post['post_title'] . '</a> </div> </div> </div> '; } } //show other posts if(!$wpmfc['show_other_hide']){ if($wpmfc['show_other_type'] == 'tag'){ $show_other_posts= $related_posts; } else { $query = new WP_Query(array('category__in' => $post_cat_arr, 'post__not_in' => array($this_post_id), 'posts_per_page' => $show_other_number)); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); $show_other_posts[]= array('post_id'=> get_the_ID, 'post_title'=> get_the_title(), 'post_excerpt'=> get_the_excerpt(), 'post_thumbnail'=> get_post_image(get_the_ID(), 'slider_image_mini'), 'post_permalink'=> get_the_permalink()); } } else { // Постов не найдено } wp_reset_query(); wp_reset_postdata(); } if($show_other_posts){ foreach($show_other_posts as $show_other_post){ $show_other_html.= ' <div class="sm_post_box"> <div class="post_thumbnail_wrap pull-left"> <a href="' . $show_other_post['post_permalink'] . '">' . $show_other_post['post_thumbnail'] . '</a> </div> <div class="post_title"> <a href="' . $show_other_post['post_permalink'] . '">' . $show_other_post['post_title'] . '</a> </div> </div> '; } if ($show_other_html) { $show_other_html= ' <div id="show_other" class="show_other"> <div class="show_other_show"><i class="fa fa-angle-left"></i></div> <div class="show_other_close">×</div> <div class="show_other_title">' . $show_other_title . '</div> <div class="show_other_content"> ' . $show_other_html . ' </div> </div>' ; } } } ?> <!-- CONTENT--> <h1 class="widgettitle"><?= get_the_title() ?></h1> <div class="main_text mb30"> <?php if($wpmfc['banner_content_before']) { ?> <div class="banner_content_wrap banner_content_before"> <?=$wpmfc['banner_content_before']?> </div> <?php } ?> <?php if($wpmfc['post_show_thumb']) { ?> <div class="post_main_thumbnail"><?= get_post_image($this_post_id, 'post_thumb_content') ?></div> <?php } ?> <?php the_content(); ?> <?php if($wpmfc['banner_content_after']) { ?> <div class="banner_content_wrap banner_content_after"> <?=$wpmfc['banner_content_after']?> </div> <?php } ?> </div> <!-- /CONTENT--> <!-- SOCIAL--> <?php if ($wpmfc['social-area-1']) { ?> <!-- Shara_btns --> <div class="mb30"> <span>Поделиться:</span> <noindex> <div class="after_article_soc_buttons"> <?= $wpmfc['social-area-1'] ?> </div> </noindex> </div> <?php } else { ?> <div class="mb30"> <span><?= $wpmfc['social_bottom_text'] ?>:</span> <noindex><div class="after_article_soc_buttons"> <div class="social-likes" data-url="http://<?= $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI] ?>"> <div class="facebook" title="Поделиться ссылкой на Фейсбуке">Facebook</div> <div class="twitter" title="Поделиться ссылкой в Твиттере">Twitter</div> <div class="vkontakte" title="Поделиться ссылкой во Вконтакте">Вконтакте</div> <div class="odnoklassniki" title="Поделиться ссылкой в Одноклассниках">Одноклассники</div> <div class="plusone" title="Поделиться ссылкой в Гугл-плюсе">Google+</div> </div> </div></noindex> </div> <?php } ?> <!-- /SOCIAL--> <!-- PREV|NEXT POSTS--> <?php if ($wpmfc['nav_post_show']) { ?> <ul class="post_controller list-inline"> <?php previous_post_link('<li class="left_control_button">%link</li>', '<span>Предыдущая запись</span>%title', true); ?> <?php next_post_link('<li class="right_control_button">%link</li>', '<span>Следующая запись</span>%title', true); ?> </ul> <?php } ?> <!-- PREV|NEXT POSTS--> <!-- RELATED POSTS--> <?php if($related_posts_html) { ?> <div class="widget mb50 category_list_seven category_list_six native_related"> <h2 class="widgettitle">Похожие статьи</h2> <div class="row"> <?php echo $related_posts_html; ?> </div> </div> <?php } ?> <!-- /RELATED POSTS--> <!-- SUBSCRIBE --> <?php if ($wpmfc['subscription_block_hide_'] == 0&& is_active_sidebar('subscript')) { ?> <noindex> <div class="subscribe_box" id="wysija"> <div class="subscribe_box_pic"></div> <div class="text"> <?php $vk_subscribe_box = $wpmfc['vk'] ? '<a href="' . $wpmfc['vk'] . '">В Контакте</a>, ' : ''; $odnoclassniki_subscribe_box = $wpmfc['odnoclassniki'] ? '<a href="' . $wpmfc['odnoclassniki'] . '">Одноклассниках</a>, ' : ''; $facebook_subscribe_box = $wpmfc['facebook'] ? '<a href="' . $wpmfc['facebook'] . '">Facebook</a>, ' : ''; $google_plus_subscribe_box = $wpmfc['google_plus'] ? '<a href="' . $wpmfc['google_plus'] . '">Google Plus</a>, ' : ''; $twitter_subscribe_box = $wpmfc['twitter'] ? '<a href="' . $wpmfc['twitter'] . '">Twitter</a>, ' : ''; ?> <p> <?= $wpmfc['article_subsctibe_text_1']? $wpmfc['article_subsctibe_text_1']: ''; ?> <?= $vk_subscribe_box . $odnoclassniki_subscribe_box . $facebook_subscribe_box . $google_plus_subscribe_box . $twitter_subscribe_box ?> </p> <span>Подписывайтесь на обновления по E-mail:</span> <?php dynamic_sidebar('subscript'); ?> <?= $wpmfc['article_subsctibe_text_2']? '<p>'.$wpmfc['article_subsctibe_text_2'].'</p>': ''; ?> </div> </div> </noindex> <?php } ?> <!-- SUBSCRIBE --> <!-- COMMENTS --> <?php $real_comments_num = get_comments_number(); if ($real_comments_num == 0) { $real_comments_num = 'Нет'; $comment_text = 'комментариев'; } elseif ($real_comments_num > 9 && $real_comments_num < 21) { $comment_text = 'Комментариев'; } else { $comment_num = $real_comments_num > 10 ? substr($real_comments_num, -1) : $real_comments_num; if ($comment_num == '0' || $comment_num > '4') { $comment_text = 'Комментариев'; } elseif ($comment_num > '1' && $comment_num < '5') { $comment_text = 'Комментария'; } elseif ($comment_num == '1') { $comment_text = 'Комментарий'; } } ?> <div class="widgettitle comment_ttl"><?= $real_comments_num . ' ' . $comment_text ?></div> <ul class="commentlist"> <?php // Получаем комментарии поста с ID XXX из базы данных $comments = get_comments(array( 'post_id' => $this_post_id, 'status' => 'approve' // комментарии прошедшие модерацию )); // Формируем вывод списка полученных комментариев wp_list_comments(array( //'per_page' => 3, // Пагинация комментариев - по 10 на страницу //'reverse_top_level' => false // Показываем последние комментарии в начале 'type' => 'comment', 'callback' => 'mytheme_comment', ), $comments); ?> </ul> <div class="text-center"><?php paginate_comments_links(); ?></div> <?php $comment_args = array('fields' => apply_filters('comment_form_default_fields', array( 'author' => '<p class="comment-form-author">' . '<label for="author"> Имя <span class="required">*</span></label> ' . '<input id="author" name="author" type="text" value="' . esc_attr($commenter['comment_author']) . '" size="30"' . $aria_req . ' /></p>', 'email' => '<p class="commentator-email">' . '<label for="email"> E-mail <span class="required">*</span> </label> <input id="email" name="email" type="text" value="' . esc_attr($commenter['comment_author_email']) . '" size="30"' . $aria_req . ' />' . '</p>', 'url' => '')), 'comment_notes_after' => '', 'comment_notes_before' => '<span>Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.</span>', ); comment_form($comment_args); ?> <!-- /COMMENTS --> <?php } } //getPostViews(get_the_ID()); ?> </div> </div> <!-- ASIDE START --> <?php get_sidebar_right('sidebar_single'); ?> <!-- ASIDE END --> </div> </div> </section> <!-- RECOMENDED POSTS --> <?php echo $show_other_html; ?> <!-- /RECOMENDED POSTS --> <?php get_footer(); ?> <script> jQuery(document).ready(function ($) { //console.log($(document).width()); if ($(document).width() < 1200) { $('.left_side_share').remove(); } else { left_side_share_pos(); $(window).resize(function () { left_side_share_pos(); }); } $('.hide_left_side').click(function () { $(this).hide(); $('.show_left_side').show(); $('.left_side_share').css({'left': '-20px'}); }); $('.show_left_side').click(function () { $(this).hide(); $('.hide_left_side').show(); $('.left_side_share').css({'left': '25px'}); }); $('.current-post-ancestor').parents('li').each(function () { $(this).addClass('current-post-ancestor'); }); }); </script>
Весь ваш большой файл цитировать не буду, приведу лишь значимый кусок:\
<!-- CONTENT--> <h1 class="widgettitle"><?= get_the_title() ?></h1> <div class="main_text mb30"> <?php if($wpmfc['banner_content_before']) { ?> <div class="banner_content_wrap banner_content_before"> <?=$wpmfc['banner_content_before']?> </div> <?php } ?> <?php if($wpmfc['post_show_thumb']) { ?> <div class="post_main_thumbnail"><?= get_post_image($this_post_id, 'post_thumb_content') ?></div> <?php } ?> <?php the_content(); ?> <?php if($wpmfc['banner_content_after']) { ?> <div class="banner_content_wrap banner_content_after"> <?=$wpmfc['banner_content_after']?> </div> <?php } ?> <?php if ( in_category(52) ) { ?> //тут выводите ваш калькулятор для рубрики финансовое право <?php } ?> </div> <!-- /CONTENT-->
Так у вас выглядел код, когда вы пробовали предложенный вариант?
Сделал как Вы написали. Промучился три часа и всё работает!!! Спасибо огромное!
- Тема «Вывод блока в конце текста в определенной рубрике» закрыта для новых ответов.