get_posts и wp_autop (удалить фильтр)

Я просто преобразовал функцию query_posts в функцию get_posts.

Вот моя старая функция:

<?php // The Query query_posts( 'cat=170&showposts=4' ); remove_filter('the_excerpt', 'wpautop'); // The Loop while ( have_posts() ) : the_post(); echo '<h3 style="font-size:14px"><a href="';the_permalink(); echo '" title="';the_title(); echo '"> '; the_title(); echo '</a></h3> <div class="ultimipostexcerpt">'; the_excerpt(); echo '</div>'; endwhile; // Reset Query wp_reset_query(); ?> 

Вот мой новый

  <?php $args = array( 'posts_per_page' => 4, 'category' => 170 ); $tag_posts = get_posts( $args ); foreach ( $tag_posts as $post ) : setup_postdata( $post ); ?> <h3 style="font-size:14px"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3><div class="ultimipostexcerpt"><?php the_excerpt(); ?></div> <?php endforeach; wp_reset_postdata(); ?> 

Проблема в том, что теперь remove_filter('the_excerpt', 'wpautop'); директива больше не работает .. Я попытался положить ее до и после get_posts ($ args) ;, не влияет на выход .. 🙁 как я могу удалить фильтр для get_posts тоже?

Solutions Collecting From Web of "get_posts и wp_autop (удалить фильтр)"

Вы можете сделать свою собственную функцию выдержки:

  function wpse125086_custom_strip_tags_excerpt() { global $post; $p_obj = get_post($post->ID); $p_exp = $p_obj->post_excerpt; $p_exp = apply_filters('the_excerpt', $p_exp); $un_p = array("<p>", "</p>"); $p_exp = str_replace($un_p, "", $p_exp); echo $pcont; } 

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


Редактировать:

Если речь идет об открытии / закрытии тегов <p></p> , вы можете просто пойти с get_the_excerpt() , потому что он не добавляет их. вы должны повторить его, чтобы распечатать выдержку.

 echo get_the_excerpt();