/** * 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'])) { $text = apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_text', __('Read More', PT_CV_DOMAIN), $fargs['content']); $btn_class = apply_filters(PT_CV_PREFIX_ . 'field_content_readmore_class', 'btn btn-success btn-sm', $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) { $content_to_extract = apply_filters(PT_CV_PREFIX_ . 'field_content_to_extract', get_the_content(), $post); // Extract excerpt from content $excerpt = PT_CV_Functions::wp_trim_words($content_to_extract, $length); // Get manual excerpt $excerpt = apply_filters(PT_CV_PREFIX_ . 'field_content_excerpt', $excerpt, $fargs, $post); // Append readmore button $content = $excerpt . $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; }