true ]; return $tags; }); if (! function_exists('blocksy_post_meta')) { function blocksy_post_meta($post_meta_descriptor = null, $args = []) { if (! $post_meta_descriptor) { $post_meta_descriptor = blocksy_post_meta_defaults([ [ 'id' => 'author', 'enabled' => true, ], [ 'id' => 'comments', 'enabled' => true, ], [ 'id' => 'post_date', 'enabled' => true, ], [ 'id' => 'updated_date', 'enabled' => true, ], [ 'id' => 'categories', 'enabled' => true, ], [ 'id' => 'tags', 'enabled' => true, ], ]); } $args = wp_parse_args( $args, [ 'class' => '', 'meta_type' => 'simple', 'meta_divider' => 'none', 'force_icons' => false, 'attr' => [] ] ); $has_any_enabled_element = false; foreach ($post_meta_descriptor as $index => $single_meta) { global $post; if (get_post_type($post) === 'page') { if ($single_meta['id'] === 'comments') { $post_meta_descriptor[$index]['enabled'] = false; } if ( $single_meta['id'] === 'categories' && $single_meta['enabled'] ) { $post_meta_descriptor[$index]['enabled'] = in_array( 'category', get_object_taxonomies('page') ); } if ( $single_meta['id'] === 'tags' && $single_meta['enabled'] ) { $post_meta_descriptor[$index]['enabled'] = in_array( 'post_tag', get_object_taxonomies('page') ); } } if ( $single_meta['id'] === 'author' && ! isset($single_meta['label']) ) { $post_meta_descriptor[$index]['label'] = __('By', 'blocksy'); } if ( ( $single_meta['id'] === 'post_date' || $single_meta['id'] === 'updated_date' ) && ! isset($single_meta['label']) ) { $post_meta_descriptor[$index]['label'] = __('On', 'blocksy'); } if ( ( $single_meta['id'] === 'categories' || $single_meta['id'] === 'tags' ) && ! isset($single_meta['label']) ) { $post_meta_descriptor[$index]['label'] = __('In', 'blocksy'); } if ($post_meta_descriptor[$index]['enabled']) { $has_any_enabled_element = true; } } if (! $has_any_enabled_element) { return ''; } $default_date_format = get_option('date_format', ''); if (! empty($args['class'])) { $args['class'] = ' ' . $args['class']; } // Author ID global $post; $user_id = $post->post_author; global $authordata; if (! $authordata) { $authordata = get_userdata($user_id); } $container_attr = array_merge([ 'class' => 'entry-meta' . $args['class'], 'data-type' => $args['meta_type'] . ':' . $args['meta_divider'] ], $args['attr']); ob_start(); foreach ($post_meta_descriptor as $single_meta) { if (! $single_meta['enabled']) { continue; } if ( $single_meta['id'] === 'author' && get_the_author() ) { ?>
  • > intval($single_meta['avatar_size']) * 2 ] ), [ 'tag_name' => 'a', 'suffix' => 'static', 'ratio_blocks' => false, 'html_atts' => [ 'href' => get_author_posts_url(get_the_author_meta('ID')), ], 'img_atts' => [ 'width' => intval($single_meta['avatar_size']), 'height' => intval($single_meta['avatar_size']), 'style' => 'height:' . intval($single_meta['avatar_size']) . 'px', ], ] ); } if ($args['meta_type'] === 'label') { echo '' . esc_html($single_meta['label']) . ''; } if ($args['meta_type'] === 'icons' || $args['force_icons']) { ?> 'ct-meta-element-author', 'href' => esc_url(get_author_posts_url($authordata->ID, $authordata->user_nicename)), /* translators: %s: Author's display name. */ 'title' => esc_attr(sprintf(__('Posts by %s', 'blocksy'), get_the_author())), 'rel' => 'author', ], blocksy_schema_org_definitions('author_link', [ 'array' => true ]), ( $args['meta_type'] === 'label' ? [ 'data-label' => __( 'By', 'blocksy' ) ] : [] )), get_the_author()); ?>
  • > ' . esc_html($single_meta['label']) . ''; } $date_format = $single_meta['date_format']; if ($single_meta['date_format_source'] === 'default') { $date_format = $default_date_format; } echo blocksy_html_tag( 'time', array_merge([ 'class' => 'ct-meta-element-date', 'datetime' => get_the_date('c') ], ( ($args['meta_type'] === 'label') ? ([ 'data-label' => __( 'On', 'blocksy' ) ]) : [] ), ( is_customize_preview() ? [ 'data-default-format' => $default_date_format, 'data-date' => get_the_date('c') ] : [] )), esc_html(get_the_date($date_format)) ); ?>
  • > ' . esc_html($single_meta['label']) . ''; } $date_format = $single_meta['date_format']; if ($single_meta['date_format_source'] === 'default') { $date_format = $default_date_format; } $proper_updated_date = intval(get_the_modified_date('U')) < intval( get_the_date('U') ) ? get_the_date($date_format) : get_the_modified_date($date_format); $proper_updated_date_initial = intval(get_the_modified_date('U')) < intval( get_the_date('U') ) ? get_the_date('c') : get_the_modified_date('c'); echo blocksy_html_tag( 'time', array_merge([ 'class' => 'ct-meta-element-date', 'datetime' => $proper_updated_date_initial ], ( $args['meta_type'] === 'label' ? [ 'data-label' => __( 'On', 'blocksy' ) ] : [] ), ( is_customize_preview() ? [ 'data-default-format' => $default_date_format, 'data-date' => $proper_updated_date_initial ] : [] )), esc_html($proper_updated_date) ); ?>
  • 0) { ?>
  • '; if ($args['meta_type'] === 'icons' || $args['force_icons']) { echo ''; } if ($args['meta_type'] === 'label') { echo '' . esc_html($single_meta['label']) . ''; } echo wp_kses_post(blocksy_get_categories_list($divider)); echo ''; } if ($single_meta['id'] === 'tags' && blocksy_get_categories_list('', false)) { if ( $args['meta_type'] === 'icons' || ! isset($single_meta['style']) ) { $single_meta['style'] = 'simple'; } $divider = ''; if ($single_meta['style'] === 'simple') { $divider = ', '; } if ($single_meta['style'] === 'underline') { $divider = '/'; } echo '
  • '; if ($args['meta_type'] === 'icons' || $args['force_icons']) { echo ''; } if ($args['meta_type'] === 'label') { echo '' . esc_html($single_meta['label'], 'blocksy') . ''; } echo wp_kses_post(blocksy_get_categories_list($divider, false)); echo '
  • '; } } $to_return = ob_get_contents(); ob_end_clean(); if (empty(trim($to_return))) { return ''; } ob_start(); echo ''; return ob_get_clean(); } } if (! function_exists('blocksy_get_categories_list')) { function blocksy_get_categories_list($between = '', $is_category = true) { global $post; if (get_post_type() === 'elementor_library') { return ''; } $category = $is_category ? 'category' : 'post_tag'; $post_type = get_post_type($post); if ($post_type === 'product') { $category = $is_category ? 'product_cat' : 'product_tag'; } if ( $post_type !== 'product' && $post_type !== 'post' && $post_type !== 'page' ) { $taxonomies = array_values(array_diff( get_object_taxonomies($post_type), ['post_format'] )); if (count($taxonomies) > 0) { $category = $taxonomies[0]; foreach ($taxonomies as $single_taxonomy) { $taxonomy_object = get_taxonomy($single_taxonomy); if ( $is_category && $taxonomy_object->hierarchical || ! $is_category && ! $taxonomy_object->hierarchical ) { $category = $single_taxonomy; } } } else { return ''; } } return get_the_term_list($post, $category, '', $between); } } function blocksy_post_meta_defaults($opts = [], $args = []) { $args = wp_parse_args( $args, [] ); $defaults = [ [ 'id' => 'author', 'enabled' => false, 'label' => __('By', 'blocksy'), 'has_author_avatar' => 'no', 'avatar_size' => 25 ], [ 'id' => 'post_date', 'enabled' => false, 'label' => __('On', 'blocksy'), 'date_format_source' => 'default', 'date_format' => 'M j, Y' ], [ 'id' => 'updated_date', 'enabled' => false, 'label' => __('On', 'blocksy'), 'date_format_source' => 'default', 'date_format' => 'M j, Y' ], [ 'id' => 'categories', 'enabled' => false, 'label' => __('In', 'blocksy'), 'style' => 'simple' ], [ 'id' => 'comments', 'enabled' => false, ], [ 'id' => 'tags', 'enabled' => false, 'label' => __('In', 'blocksy'), 'style' => 'simple' ] ]; $result = []; foreach ($defaults as $index => $single_meta) { foreach ($opts as $single_opt) { if ($single_meta['id'] !== $single_opt['id']) { continue; } $future_layer = wp_parse_args($single_opt, $single_meta); if (! $future_layer['enabled']) { continue; } $result[] = $future_layer; } } return $result; }