Intereting Posts
Пользовательские форматы стиля TinyMCE отключены Добавить различные действия в другую страницу wp_footer Использовать WP_Query в shortcode Скрыть подкаталог на моем веб-сайте Проблема разбиения на страницы (плагин wp-pagenavi) с пользовательским типом сообщения? Я использовал Tax-meta-класс by bainternet, но я все еще не могу заставить его отображать какие-либо результаты. Использование add_filter () в виджетах Любой способ заставить определенный плагин использовать таблицы одного сайта в многоуровневой установке? HTML-код с кодировкой TinyMCE Отмена таксономии post_tag прерывает описание термина для других таксономий Разделить содержимое сообщения на отдельные div для каждых 500 символов (или любых других символов) Заменить текст внутри огромного многомерного массива Добавление дополнительных сведений к пользовательским выдержкам Как сделать «липкие» страницы (и запросить их) новый WP_query с использованием настраиваемых полей

Добавить окно обзора по функциям вверху или внизу содержимого

Фильтр

add_filter( 'the_content', 'sandy_posts_filter' ); function sandy_posts_filter( $content ) { global $post; $review_box_pos =get_post_meta( $post->ID, 'repeatable_fields', true ); if (is_array($review_box_pos)) { foreach ($review_box_pos as $key => $val) { switch ($val[nameooz]) { case 'top': $content = sandy_reviews() . $content; break; case 'bottom': //$content .= "Extra Content" ; Work at footer Perfect// $content .= sandy_reviews() ; //shown at top only !!! break; } //End Switch } } return $content ; } 

функция

  //////////////////// Reviews Box /////////////////////// function sandy_reviews() { $get_meta = get_post_custom($current_ID); $reviews = (get_post_meta(get_the_ID(), 'repeatable_fields', true)); $sumArray = array(); if (is_array($reviews)) foreach($reviews as $k => $val) { foreach($val as $id => $value) { $sumArray[$id] += $value; } } $Reviwes_count = count($reviews); $Total_Reviwes = round(($sumArray[range] / $Reviwes_count), 1); if (!empty($reviews)) { ?> <div class = "reviews-box" > <div class = "reviews-box-title" > <?php $get_meta = get_post_custom($current_ID); if (!empty($reviews)) foreach($reviews as $val) { echo $val["nameoo"]; } ?> </div> <?php //Get Round Number if (!empty($reviews)) foreach($reviews as $key => $val) { if (!empty($val[range])) $reviews_title = $val[nameoo]; $ranges = $val[range]; $range1 = ($val[range] * 0.01) * (5); $range2 = floor(($range1 * 2) / 2); $Reviwes = ($range1 * 20); ?> <div class = "reviews-box-row" > <div class = "reviews-box-keywords" > <?php echo $val[name]; ?> </div> <div class = "reviews-box-ranges" > <span style = "display: block;float:left; width: 65px; height: 13px; background: url( <?php echo get_template_directory_uri();?>/images/star-rating-sprite.png) 0 0;" > <span style = "display: block;float:left; width: <?php echo $ranges.'%';?>; height: 13px; background: url( <?php echo get_template_directory_uri();?>/images/star-rating-sprite.png) 0 -13px;" > </span> </span> <?php echo "</div></div>";} ?> <div class = "reviews-box-percent" > Summary </div> <!-- <div class="reviews-box-ranges"><?php //echo ($val[range]*0.01)*(5);?></div> --> <div class = "reviews-box-ranges-percent" > <div class = "Total_Reviwes" > <?php echo $Total_Reviwes.""; ?> </div> <span style = "display: inline-block; margin:0 auto;width: 65px; height: 13px; background: url( <?php echo get_template_directory_uri();?>/images/star-rating-sprite.png) 0 0;" > <span style = "display: block; margin:0 auto;float:left;width: <?php echo $Total_Reviwes.'%';?>; height: 13px; background: url( <?php echo get_template_directory_uri();?>/images/star-rating-sprite.png) 0 -13px;" > </span> </span> <?php echo "</div>"; echo "</div>"; } } //////////////////// Reviews Box END/////////////////////// 

1- Почему эта функция не показана внизу контента?

2- Почему, когда мы использовали этот фильтр в верхней части контента, он показывает окно обзора на

резюме содержимого на странице категории!

1- Почему эта функция не показана внизу контента?

Ваш фильтр должен возвращать контент, а не echo контент, но вы вызываете sandy_reviews() внутри обратного вызова фильтра, а sandy_reviews() печатает контент во время его sandy_reviews() . Вам нужно переписать эту функцию, чтобы возвращать контент, а не echo его.

2- Почему, когда мы использовали этот фильтр в верхней части контента, он показывает окно обзора на

резюме содержимого на странице категории!

В вашем архиве категорий используется the_content() чтобы отображать сводки, и ваш код ничего не делает для предотвращения этого. Вы хотите что-то вроде:

 add_filter( 'the_content', 'sandy_posts_filter' ); function sandy_posts_filter( $content ) { if (!is_single()) return $content; // the rest of your code 

Исходя из вашего вопроса, вы можете добавить фильтр в the_content чтобы добавить пользовательский контент до или после фактического содержимого. Это даст вам голову.

 function wepse208756_filter_the_content( $content ) { $customcontent = 'My Custom Content'; if ( isset($myvar) && $myvar == 'top' ) { //Adds Before The Content $content = $customcontent . $content; } elseif ( isset($myvar) && $myvar == 'bottom' ) { //Adds After The Content $content = $content . $customcontent; } return $content; } add_filter( 'the_content', 'wepse208756_filter_the_content' ); 

Вы можете использовать фильтр the_content

  add_filter( 'the_content', 'my_the_content_filter', 20 ); /** * Filtering The Content. */ function my_the_content_filter( $content ) { $after = "<div>After div box</div>"; $before = "<div>Before div box</div>"; $content = $after . $content . $before; // Returns the content. return $content; } 

См .: https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content