function impose_post_teaser(&$object, $post_type, $use_teaser_type = 'fixed') { global $current_user, $scoper, $wp_query; require_once dirname(__FILE__) . '/teaser_rs.php'; $teaser_replace = array(); $teaser_prepend = array(); $teaser_append = array(); $teaser_replace[$post_type]['post_content'] = ScoperTeaser::get_teaser_text('replace', 'content', 'post', $post_type, $current_user); $teaser_replace[$post_type]['post_excerpt'] = ScoperTeaser::get_teaser_text('replace', 'excerpt', 'post', $post_type, $current_user); $teaser_prepend[$post_type]['post_excerpt'] = ScoperTeaser::get_teaser_text('prepend', 'excerpt', 'post', $post_type, $current_user); $teaser_append[$post_type]['post_excerpt'] = ScoperTeaser::get_teaser_text('append', 'excerpt', 'post', $post_type, $current_user); $teaser_prepend[$post_type]['post_name'] = ScoperTeaser::get_teaser_text('prepend', 'name', 'post', $post_type, $current_user); $teaser_append[$post_type]['post_name'] = ScoperTeaser::get_teaser_text('append', 'name', 'post', $post_type, $current_user); $force_excerpt = array(); $force_excerpt[$post_type] = 'excerpt' == $use_teaser_type; $args = array('teaser_prepend' => $teaser_prepend, 'teaser_append' => $teaser_append, 'teaser_replace' => $teaser_replace, 'force_excerpt' => $force_excerpt); ScoperTeaser::apply_teaser($object, $post_type, $args); $wp_query->is_404 = false; $wp_query->is_attachment = true; $wp_query->is_single = true; $wp_query->is_singular = true; $object->ancestors = array($object->post_parent); $wp_query->post_count = 1; $wp_query->is_attachment = true; $wp_query->posts[] = $object; if (isset($wp_query->query_vars['error'])) { unset($wp_query->query_vars['error']); } if (isset($wp_query->query['error'])) { $wp_query->query['error'] = ''; } }
function posts_teaser($results, $tease_otypes, $args = '') { $defaults = array('user' => '', 'use_object_roles' => -1, 'use_term_roles' => -1, 'request' => ''); $args = array_merge($defaults, (array) $args); extract($args); global $wpdb, $scoper, $wp_query; if (did_action('wp_meta') && !did_action('wp_head')) { return $results; } if (!is_object($user)) { global $current_user; $user = $current_user; } $teaser_replace = array(); $teaser_prepend = array(); $teaser_append = array(); foreach ($tease_otypes as $object_type) { $teaser_replace[$object_type]['post_content'] = ScoperTeaser::get_teaser_text('replace', 'content', 'post', $object_type, $user); $teaser_prepend[$object_type]['post_content'] = ScoperTeaser::get_teaser_text('prepend', 'content', 'post', $object_type, $user); $teaser_append[$object_type]['post_content'] = ScoperTeaser::get_teaser_text('append', 'content', 'post', $object_type, $user); $teaser_replace[$object_type]['post_excerpt'] = ScoperTeaser::get_teaser_text('replace', 'excerpt', 'post', $object_type, $user); $teaser_prepend[$object_type]['post_excerpt'] = ScoperTeaser::get_teaser_text('prepend', 'excerpt', 'post', $object_type, $user); $teaser_append[$object_type]['post_excerpt'] = ScoperTeaser::get_teaser_text('append', 'excerpt', 'post', $object_type, $user); $teaser_prepend[$object_type]['post_title'] = ScoperTeaser::get_teaser_text('prepend', 'name', 'post', $object_type, $user); $teaser_append[$object_type]['post_title'] = ScoperTeaser::get_teaser_text('append', 'name', 'post', $object_type, $user); } global $scoper_teaser_filtered_ids; if (!isset($scoper->teaser_ids)) { $scoper->teaser_ids = array(); } $excerpt_teaser = array(); $more_teaser = array(); $x_chars_teaser = array(); foreach ($tease_otypes as $object_type) { $teaser_type = scoper_get_otype_option('use_teaser', 'post', $object_type); if ('excerpt' == $teaser_type) { $excerpt_teaser[$object_type] = true; } elseif ('more' == $teaser_type) { $excerpt_teaser[$object_type] = true; $more_teaser[$object_type] = true; } elseif ('x_chars' == $teaser_type) { $excerpt_teaser[$object_type] = true; $more_teaser[$object_type] = true; $x_chars_teaser[$object_type] = true; } } // strip content from all $results rows not in $items $args = array('teaser_prepend' => $teaser_prepend, 'teaser_append' => $teaser_append, 'teaser_replace' => $teaser_replace, 'excerpt_teaser' => $excerpt_teaser, 'more_teaser' => $more_teaser, 'x_chars_teaser' => $x_chars_teaser); foreach (array_keys($results) as $key) { if (is_array($results[$key])) { $id = $results[$key]['ID']; } else { $id = $results[$key]->ID; } if (!$scoper_teaser_filtered_ids || !in_array($id, $scoper_teaser_filtered_ids)) { if (isset($results[$key]->post_type)) { $object_type = $results[$key]->post_type; } else { $object_type = $scoper->data_sources->get_from_db('type', 'post', $id); } if (!in_array($object_type, $tease_otypes)) { continue; } ScoperTeaser::apply_teaser($results[$key], 'post', $object_type, $args); } } return $results; }