2016-06-27 4 views
0

WordPress 사이트 내에서 각 카테고리에 하나의 게시물이있는 두 개의 카테고리를 만들었습니다. 나는 서로 다른 페이지에있는 각 카테고리 포스트에서 발췌하고 발췌하고있다.WordPress에서 2 단락을 발췌하려고 발췌

각 페이지에서 발췌 한 내용을 보여 주며 더 많은 링크를 수동으로 추가하고 있습니다.

<?php query_posts('cat=4&showposts=1'); ?> 
    <?php while (have_posts()) : the_post(); ?> 
     <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
     <?php the_excerpt(); ?> 
    <a href="<?php the_permalink(); ?>">Read More</a> 
<?php endwhile; ?> 

다음 코드는 첫 번째 단락 뒤에 발췌 내용을 끝냅니다. 내가하고 싶은 무엇

function post_single_paragrapgh($text, $raw_excerpt) { 
    if(! $raw_excerpt) { 
     $content = apply_filters('the_content', get_the_content()); 
     $text = substr($content, 0, strpos($content, '</p>') + 4); 
    } 
    return $text; 
} 

add_filter('wp_trim_excerpt', 'post_single_paragrapgh', 10, 2); 

사실, 이미지 및 단락을 두 번째 단락 뒤에 리거나하도록 지시합니다.

게시물의 상단에 이미지가 있으면 이미지를 가져 오지만, 이미지의 다음 단락이나 텍스트의 단락 두 개를 원합니다. 하나 또는.

참조를 위해이 사이트를 사용했지만 오류 C1이 발생합니다. https://www.bybe.net/wordpress-the_excerpt-show-first-paragraph/

미리 감사드립니다.

+0

[Question about strpos]의 가능한 중복. 문자열의 두 번째 발생을 얻는 방법?] (http://stackoverflow.com/questions/3126324/question-about-strpos-how-to-get-2nd-occurrence-of-the-string) – rnevius

답변

0

정규식을 사용하는 솔루션에 열려 있습니까? <p>(Anything)</p>을 찾아 두 가지 첫 번째 항목을 병합하십시오. 코드는 테스트되지 않았지만 작동해야합니다.

function post_single_paragrapgh($text, $raw_excerpt) { 
    if(! $raw_excerpt) { 
     $content = apply_filters('the_content', get_the_content()); 

     preg_match_all('~<p>(.*?)</p>~', $content, $matches); 

     if(isset($matches[0][0]) && isset($matches[0][1])) { 

      $text = $matches[0][0] . $matches[0][1]; 

     } else { 

      $text = $matches[0][0]; 

     } 
    } 
    return $text; 
} 
0

나는이 코드와 함께 필요한 것을 알아낼 수 있었고, 너무 성급하게 질문을 게시했습니다.

function awesome_excerpt($awesomeness_excerpt) { 

    global $post; 
    $raw_excerpt = $awesomeness_excerpt; 

    if ('' == $awesomeness_excerpt) { 
     $awesomeness_excerpt = get_the_content(''); 
     $awesomeness_excerpt = strip_shortcodes($awesomeness_excerpt); 
     $awesomeness_excerpt = apply_filters('the_content', $awesomeness_excerpt); 

     $awesomeness_excerpt = "<p>$awesomeness_excerpt</p>"; 
     $wanted_number_of_paragraph = 2; 
     $tmp = explode ('</p>', $awesomeness_excerpt); 
     for ($i = 0; $i < $wanted_number_of_paragraph; ++$i) { 
      if (isset($tmp[$i]) && $tmp[$i] != '') { 
       $tmp_to_add[$i] = $tmp[$i]; 
      } 
     } 

     $awesomeness_excerpt .= $excerpt_end; 
     return $awesomeness_excerpt; 
    } 
    return apply_filters('awesome_excerpt', $awesomeness_excerpt, $raw_excerpt); 
} 

remove_filter('get_the_excerpt', 'wp_trim_excerpt'); 
add_filter('get_the_excerpt', 'awesome_excerpt'); 

하단에있는 경우 오류가 남았음에 틀림 없습니다. 바라건대 다른 사람들을 도울 수 있기를 바랍니다.

관련 문제