Beispiel #1
0
 protected function run()
 {
     $force = $this->force;
     $len = $this->length;
     $chars = $this->char_length;
     $strip = $this->strip;
     $readmore_matches = array();
     $text = '';
     $trimmed = false;
     if (isset($this->post->post_excerpt) && strlen($this->post->post_excerpt)) {
         if ($this->force) {
             $text = TextHelper::trim_words($this->post->post_excerpt, $len, false);
             if ($chars !== false) {
                 $text = TextHelper::trim_characters($this->post->post_excerpt, $chars, false);
             }
             $trimmed = true;
         } else {
             $text = $this->post->post_excerpt;
         }
     }
     if (!strlen($text) && preg_match('/<!--\\s?more(.*?)?-->/', $this->post->post_content, $readmore_matches)) {
         $pieces = explode($readmore_matches[0], $this->post->post_content);
         $text = $pieces[0];
         if ($force) {
             $text = TextHelper::trim_words($text, $len, false);
             if ($chars !== false) {
                 $text = TextHelper::trim_characters($text, $chars, false);
             }
             $trimmed = true;
         }
         $text = do_shortcode($text);
     }
     if (!strlen($text)) {
         $text = TextHelper::trim_words($this->post->content(), $len, false);
         if ($chars !== false) {
             $text = TextHelper::trim_characters($text, $chars, false);
         }
         $trimmed = true;
     }
     if (!strlen(trim($text))) {
         return trim($text);
     }
     if ($strip) {
         $allowable_tags = is_string($strip) ? $strip : null;
         $text = trim(strip_tags($text, $allowable_tags));
     }
     if (strlen($text)) {
         return $this->assemble($text, $readmore_matches, $trimmed);
     }
     return trim($text);
 }