/** * HTML output of meta fields group * * @param object $post The post object * @param array $fargs The settings of this field * * @return string */ static function _field_meta($post, $fargs) { $html = array(); // Sets up global post data setup_postdata($post); foreach ($fargs as $meta => $val) { if (!$val) { continue; } switch ($meta) { case 'date': // Get date wrapper class $date_class = apply_filters(PT_CV_PREFIX_ . 'field_meta_class', 'entry-date', 'date'); $prefix_text = apply_filters(PT_CV_PREFIX_ . 'field_meta_prefix_text', '', 'date'); $date = apply_filters(PT_CV_PREFIX_ . 'field_meta_date_final', get_the_date('', $post), get_the_time('U')); $html['date'] = sprintf('<span class="%s">%s <time datetime="%s">%s</time></span>', esc_html($date_class), balanceTags($prefix_text), esc_attr(get_the_date('c')), esc_html($date)); break; case 'taxonomy': // Get terms wrapper class $term_class = apply_filters(PT_CV_PREFIX_ . 'field_meta_class', 'terms', 'terms'); $prefix_text = apply_filters(PT_CV_PREFIX_ . 'field_meta_prefix_text', __('in', PT_CV_DOMAIN), 'terms'); $terms = PT_CV_Functions::post_terms($post); if (!empty($terms)) { $term_html = sprintf('<span class="%s">%s %s</span>', esc_attr($term_class), balanceTags($prefix_text), balanceTags($terms)); $html['taxonomy'] = apply_filters(PT_CV_PREFIX_ . 'field_term_html', $term_html, $terms); } break; case 'comment': if (!post_password_required() && (comments_open() || get_comments_number())) { // Get comment wrapper class $comment_class = apply_filters(PT_CV_PREFIX_ . 'field_meta_class', 'comments-link', 'comment'); $prefix_text = apply_filters(PT_CV_PREFIX_ . 'field_meta_prefix_text', '', 'comment'); ob_start(); comments_popup_link(__('Leave a comment', PT_CV_DOMAIN), __('1 Comment', PT_CV_DOMAIN), __('% Comments', PT_CV_DOMAIN)); $comment_content = ob_get_clean(); $html['comment'] = sprintf('<span class="%s">%s %s</span>', esc_attr($comment_class), balanceTags($prefix_text), $comment_content); } break; case 'author': // Get author wrapper class $author_class = apply_filters(PT_CV_PREFIX_ . 'field_meta_class', 'author', 'author'); $prefix_text = apply_filters(PT_CV_PREFIX_ . 'field_meta_prefix_text', __('by', PT_CV_DOMAIN), 'author'); $author_html = sprintf('<span class="%s">%s <a href="%s" rel="author">%s</a></span>', esc_attr($author_class), balanceTags($prefix_text), esc_url(get_author_posts_url(get_the_author_meta('ID'))), get_the_author()); $html['author'] = apply_filters(PT_CV_PREFIX_ . 'field_meta_author_html', $author_html, $post); break; default: break; } } // Merge fields, or let them as seperate items in array $merge_fields = apply_filters(PT_CV_PREFIX_ . 'field_meta_merge_fields', true); if ($merge_fields) { $result = PT_CV_Html::_field_meta_wrap($html); } else { $result = $html; } return $result; }