joann
  • 0
Новичок

Плохая разметка при использовании the_excerpt() в виджете?

  • 0

Текст, возвращаемый функцией the_excerpt(), не соответствует формату моего виджета. Я не мог бы объяснить это лучше, поэтому я просто покажу вам свой код:

function widget($args, $options) {
    extract($args);

    $post_type = $options['post_type'];
    $num_of_posts = $options['limit'];

    // Create a new instance
    $second_query = new WP_Query( array(
                        'post_type' => "$post_type",
                        'posts_per_page' => "$num_of_posts",
                        'post_status' => 'publish',
                    ) ); 

    // The Loop
    if ($second_query->have_posts()) :
      while( $second_query->have_posts() ) : $second_query->the_post();
          $byh_content .= "<p>" . the_excerpt() . "</p>";
      endwhile; else :
          $byh_content = "<p>No " . $options['post_type'] . "s found.</p>";
    endif;
    wp_reset_postdata();

    $title = "<h3>" . $options['title'] . "</h3>";
    $content = $byh_content;

    echo $before_widget.$title.$content.$after_widget;
}

Результат не тот, что я ожидал. Вот как это выглядит при рендеринге:

виджет визуализируется

Заголовок должен быть вверху. Причина в том, что отрывок находится не там, где он должен быть:

введите описание изображения здесь

Share
  1. поскольку вы работаете со строками, вам нужно использовать функцию, которая возвращает значение, а не повторяет его; в этой строке:

    $byh_content.= "<p>". the_excerpt(). "</p>";

    используйте get_the_excerpt() http://codex.wordpress.org/Function_Reference/get_the_excerpt

    • 0

Оставить ответ

You must login to add an answer.