protected function _decorate_content($content) { if (defined('DOING_AJAX') && DOING_AJAX) { return $content; } $do_processing = apply_filters('upfront-shortcode-enable_in_layout', defined('UPFRONT_DISABLE_LAYOUT_TEXT_SHORTCODES') && UPFRONT_DISABLE_LAYOUT_TEXT_SHORTCODES ? false : true); if ($do_processing) { $content = do_shortcode($content); } return Upfront_Codec::get('wordpress')->expand_all($content); }
/** * Expands post meta values. * * @return string Compiled expression */ public function expand_meta_template() { if (empty($this->_post->ID)) { return ''; } $out = $this->_get_template('meta'); if (empty($out)) { return $out; } return Upfront_Codec::get('postmeta')->expand_all($out, $this->_post); }
public static function get_post_part($type, $options = array(), $tpl = false, $properties = array()) { $options = is_array($options) ? $options : array(); global $post; $parts = array_values(apply_filters('upfront_post_parts', self::$PARTNAMES)); if (array_search($type, $parts) === FALSE) { $unknown = array(); $unknown[$type] = 'Unknown part'; return $unknown; } $part = array('replacements' => array()); $replacements = array(); $tpls = array(); $classes = array(); if (!sizeof(self::$partTemplates)) { self::$partTemplates = self::get_templates(); } if (!$tpl) { $tpl = self::$partTemplates[$type]; } switch ($type) { case self::$PARTNAMES['AUTHOR']: $replacements['%author%'] = get_the_author(); $replacements['%author_url%'] = get_author_posts_url($post->post_author); $meta = self::get_tpl_parameter('author_meta', $tpl); foreach ($meta as $key) { $replacements['%author_meta_' . $key . '%'] = get_the_author_meta($key); } $avatar = self::get_tpl_parameter('avatar', $tpl); foreach ($avatar as $size) { $replacements['%avatar_' . $size . '%'] = get_avatar($post->post_author, $size); } break; break; case self::$PARTNAMES['CATEGORIES']: $replacements['%categories%'] = get_the_category_list(); break; case self::$PARTNAMES['COMMENTS']: $replacements['%comments_count%'] = get_comments_number(); break; case self::$PARTNAMES['CONTENTS']: $limit = isset($options['limit']) ? $options['limit'] : 1000; if (!empty($post->ID) && is_numeric($post->ID)) { ob_start(); the_content(); $replacements['%contents%'] = ob_get_clean(); $replacements['%excerpt%'] = self::excerpt($limit); } else { $post = apply_filters('upfront-this_post-unknown_post', $post, $options); $replacements['%contents%'] = apply_filters('the_content', $post->post_content); $replacements['%excerpt%'] = self::excerpt($limit); } if (!empty($options['excerpt'])) { $replacements['%contents%'] = $replacements['%excerpt%']; } $offset = isset($options['content_offset']) ? $options['content_offset'] : ''; $replacements['%offset%'] = $offset; break; case self::$PARTNAMES['EXCERPT']: $limit = isset($options['limit']) ? $options['limit'] : 1000; $replacements['%excerpt%'] = self::excerpt($limit); //$replacements['%excerpt%'] = $limit; // Why??? break; case self::$PARTNAMES['DATE']: $format = isset($options['format']) ? $options['format'] : 'd M Y'; $replacements['%date%'] = self::_format_post_date($format); $replacements['%date_iso%'] = get_the_date('c'); break; case self::$PARTNAMES['UPDATE']: $format = isset($options['format']) ? $options['format'] : 'd M Y'; $replacements['%update%'] = self::_format_post_date($format, "update"); $replacements['%date_iso%'] = get_the_modified_date('c'); break; case self::$PARTNAMES['IMAGE']: if (isset($properties['hide_featured_image']) && $properties['hide_featured_image'] == 1) { $classes[] = 'hide-featured_image'; $tpl = ''; // empty $tpl so it doesn't output anything } if (isset($properties['full_featured_image']) && $properties['full_featured_image'] == 1) { $classes[] = 'full-featured_image'; $replacements['%image%'] = get_the_post_thumbnail(null, 'full'); } else { $replacements['%image%'] = upfront_get_edited_post_thumbnail(); } $replacements['%permalink%'] = get_permalink(); break; case self::$PARTNAMES['TAGS']: $sep = isset($options['tag_separator']) ? $options['tag_separator'] : ', '; $tags = get_the_tag_list('', $sep); $replacements['%tags%'] = !empty($tags) ? $tags : ''; break; case self::$PARTNAMES['TITLE']: $replacements['%title%'] = get_the_title(); $replacements['%permalink%'] = get_permalink(); break; case self::$PARTNAMES['AUTHOR_GRAVATAR']: $avatar = self::get_tpl_parameter('avatar', $tpl); foreach ($avatar as $size) { $_size = str_replace(array("{", "}"), "", $size); $replacements['%avatar_' . $size . '%'] = get_avatar($post->post_author, $_size); } break; case self::$PARTNAMES['META']: $metas = Upfront_PostmetaModel::get_all_post_meta_fields(get_the_ID()); foreach ($metas as $meta) { if (empty($meta['meta_key'])) { continue; } $rpl = Upfront_Codec::get('postmeta')->get_clean_macro($meta['meta_key']); $value = Upfront_Codec::get('postmeta')->get_extracted_value($meta, get_the_ID()); $replacements[$rpl] = $value; } break; } $replacements = apply_filters('upfront_post_part_replacements', $replacements, $type, $options, $tpl); $out = array('replacements' => $replacements, 'tpl' => self::replace($tpl, $replacements), 'classes' => $classes); // Cleanup unused meta if ($type === self::$PARTNAMES['META'] && !empty($out['tpl'])) { $out['tpl'] = Upfront_Codec::get('postmeta')->clear_all($out['tpl']); } return $out; }