/** * Movie shortcode. Display a single movie with various display * options. * * @since 1.1 * * @param array Shortcode attributes * @param string Shortcode content * * @return string Shortcode display */ public static function movie_shortcode($atts = array(), $content = null) { $atts = self::filter_shortcode_atts('movie', $atts); $movie_id = WPMOLY_Shortcodes::find_movie_id($atts['id'], $atts['title']); if (is_null($movie_id)) { return $content; } $atts['id'] = $movie_id; // Caching $name = apply_filters('wpmoly_cache_name', 'movie_shortcode', $atts); $content = WPMOLY_Cache::output($name, function () use($atts, $content) { extract($atts); if (!is_null($id)) { $select = 'p=' . $id; } else { if (!is_null($title)) { $select = 'name=' . sanitize_title_with_dashes(remove_accents($title)); } } $query = 'post_type=movie&post_status=publish&' . $select; $query = new WP_Query($query); $movies = WPMOLY_Shortcodes::prepare_movies($query, $atts); $attributes = array('movies' => $movies); $content = WPMovieLibrary::render_template('shortcodes/movies.php', $attributes, $require = 'always'); return $content; }, $echo = false); return $content; }