/** * Get content * * @param object $post * @param array $fargs * * @return string */ static function _field_content($post, $fargs) { $dargs = PT_CV_Functions::get_global_variable('dargs'); // Get other settings $oargs = isset($dargs['other-settings']) ? $dargs['other-settings'] : array(); // Sets up global post data setup_postdata($post); // Handle the more tag inside content do_action(PT_CV_PREFIX_ . 'handle_teaser'); // Get content class $content_class = apply_filters(PT_CV_PREFIX_ . 'field_content_class', PT_CV_PREFIX . 'content'); // Get content tag (div/p/span...) $tag = apply_filters(PT_CV_PREFIX_ . 'field_content_tag', 'div'); // Get full content/exceprt $content = ''; switch ($fargs['content']['show']) { case 'excerpt': $length = (int) $fargs['content']['length']; $readmore_btn = ''; $dots = ' ...'; $readmore_html = apply_filters(PT_CV_PREFIX_ . 'field_excerpt_dots', 1, $fargs) ? $dots : ''; // Read more button if (apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_enable', 1, $fargs['content'])) { // Leverage WordPress translation $default_readmore = ucwords(rtrim(__('Read more...'), '.')); $text = apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_text', $default_readmore, $fargs['content']); $btn_class = apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_class', 'btn btn-success', $fargs); $readmore_btn .= self::_field_href($oargs, $post, $text, PT_CV_PREFIX . 'readmore ' . $btn_class); $readmore_html .= apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_seperated', '<br/>', $fargs) . $readmore_btn; } // Get excerpt if ($length > 0) { $GLOBALS['cv_excerpt_type'] = 'content'; // Get manual excerpt, apply filters => modify $GLOBALS[ 'cv_excerpt_type' ] relatively $full_excerpt = apply_filters(PT_CV_PREFIX_ . 'field_content_excerpt', get_the_content(), $fargs, $post); // Limit length if (apply_filters(PT_CV_PREFIX_ . 'trim_excerpt', $GLOBALS['cv_excerpt_type'] == 'content')) { $trimmed_excerpt = PT_CV_Functions::cv_trim_words($full_excerpt, $length); $excerpt = apply_filters(PT_CV_PREFIX_ . 'trim_length_excerpt', $trimmed_excerpt, $full_excerpt, $length); } else { $excerpt = $full_excerpt; } // Append readmore button $hide_readmore = apply_filters(PT_CV_PREFIX_ . 'hide_readmore', false, $excerpt, $full_excerpt, $post); $content = $excerpt . ($hide_readmore ? '' : $readmore_html); } else { // Display only readmore button if length <= 0 $content = $readmore_btn; } // Trim period which precedes dots $content = str_replace('.' . $dots, $dots, $content); break; case 'full': ob_start(); the_content(); $content = ob_get_clean(); break; } $content = apply_filters(PT_CV_PREFIX_ . 'field_content_final', $content, $post); $html = rtrim($content, '.') ? sprintf('<%1$s class="%2$s">%3$s</%1$s>', $tag, esc_attr($content_class), force_balance_tags($content)) : ''; return $html; }