if ( ! class_exists( 'SimplePie', false ) ) :
// Load classes we will need.
require ABSPATH . WPINC . '/SimplePie/Misc.php';
require ABSPATH . WPINC . '/SimplePie/Cache.php';
require ABSPATH . WPINC . '/SimplePie/File.php';
require ABSPATH . WPINC . '/SimplePie/Sanitize.php';
require ABSPATH . WPINC . '/SimplePie/Registry.php';
require ABSPATH . WPINC . '/SimplePie/IRI.php';
require ABSPATH . WPINC . '/SimplePie/Locator.php';
require ABSPATH . WPINC . '/SimplePie/Content/Type/Sniffer.php';
require ABSPATH . WPINC . '/SimplePie/XML/Declaration/Parser.php';
require ABSPATH . WPINC . '/SimplePie/Parser.php';
require ABSPATH . WPINC . '/SimplePie/Item.php';
require ABSPATH . WPINC . '/SimplePie/Parse/Date.php';
require ABSPATH . WPINC . '/SimplePie/Author.php';
* WordPress autoloader for SimplePie.
function wp_simplepie_autoload( $class ) {
if ( 0 !== strpos( $class, 'SimplePie_' ) )
$file = ABSPATH . WPINC . '/' . str_replace( '_', '/', $class ) . '.php';
* We autoload classes we may not need.
spl_autoload_register( 'wp_simplepie_autoload' );
* A PHP-Based RSS and Atom Feed Framework.
* Takes the hard work out of managing a complete RSS/Atom solution.
* Copyright (c) 2004-2017, Ryan Parman, Sam Sneddon, Ryan McCue, and contributors
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* * Neither the name of the SimplePie Team nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
* AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* @copyright 2004-2017 Ryan Parman, Sam Sneddon, Ryan McCue
* @link http://simplepie.org/ SimplePie
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
define('SIMPLEPIE_NAME', 'SimplePie');
define('SIMPLEPIE_VERSION', '1.5.6');
* @todo Hardcode for release (there's no need to have to call SimplePie_Misc::get_build() only every load of simplepie.inc)
define('SIMPLEPIE_BUILD', gmdate('YmdHis', SimplePie_Misc::get_build()));
define('SIMPLEPIE_URL', 'http://simplepie.org');
* @see SimplePie::set_useragent()
define('SIMPLEPIE_USERAGENT', SIMPLEPIE_NAME . '/' . SIMPLEPIE_VERSION . ' (Feed Parser; ' . SIMPLEPIE_URL . '; Allow like Gecko) Build/' . SIMPLEPIE_BUILD);
define('SIMPLEPIE_LINKBACK', '<a href="' . SIMPLEPIE_URL . '" title="' . SIMPLEPIE_NAME . ' ' . SIMPLEPIE_VERSION . '">' . SIMPLEPIE_NAME . '</a>');
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_NONE', 0);
* Feed Link Element Autodiscovery
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_AUTODISCOVERY', 1);
* Local Feed Extension Autodiscovery
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_LOCAL_EXTENSION', 2);
* Local Feed Body Autodiscovery
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_LOCAL_BODY', 4);
* Remote Feed Extension Autodiscovery
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_REMOTE_EXTENSION', 8);
* Remote Feed Body Autodiscovery
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_REMOTE_BODY', 16);
* @see SimplePie::set_autodiscovery_level()
define('SIMPLEPIE_LOCATOR_ALL', 31);
define('SIMPLEPIE_TYPE_NONE', 0);
define('SIMPLEPIE_TYPE_RSS_090', 1);
define('SIMPLEPIE_TYPE_RSS_091_NETSCAPE', 2);
define('SIMPLEPIE_TYPE_RSS_091_USERLAND', 4);
* RSS 0.91 (both Netscape and Userland)
define('SIMPLEPIE_TYPE_RSS_091', 6);
define('SIMPLEPIE_TYPE_RSS_092', 8);
define('SIMPLEPIE_TYPE_RSS_093', 16);
define('SIMPLEPIE_TYPE_RSS_094', 32);
define('SIMPLEPIE_TYPE_RSS_10', 64);
define('SIMPLEPIE_TYPE_RSS_20', 128);
define('SIMPLEPIE_TYPE_RSS_RDF', 65);
* Non-RDF-based RSS (truly intended as syndication format)
define('SIMPLEPIE_TYPE_RSS_SYNDICATION', 190);
define('SIMPLEPIE_TYPE_RSS_ALL', 255);
define('SIMPLEPIE_TYPE_ATOM_03', 256);
define('SIMPLEPIE_TYPE_ATOM_10', 512);
define('SIMPLEPIE_TYPE_ATOM_ALL', 768);
define('SIMPLEPIE_TYPE_ALL', 1023);
define('SIMPLEPIE_CONSTRUCT_NONE', 0);
define('SIMPLEPIE_CONSTRUCT_TEXT', 1);
define('SIMPLEPIE_CONSTRUCT_HTML', 2);
define('SIMPLEPIE_CONSTRUCT_XHTML', 4);
* base64-encoded construct
define('SIMPLEPIE_CONSTRUCT_BASE64', 8);
define('SIMPLEPIE_CONSTRUCT_IRI', 16);
* A construct that might be HTML
define('SIMPLEPIE_CONSTRUCT_MAYBE_HTML', 32);
define('SIMPLEPIE_CONSTRUCT_ALL', 63);
define('SIMPLEPIE_SAME_CASE', 1);
define('SIMPLEPIE_LOWERCASE', 2);
define('SIMPLEPIE_UPPERCASE', 4);
* PCRE for HTML attributes
define('SIMPLEPIE_PCRE_HTML_ATTRIBUTE', '((?:[\x09\x0A\x0B\x0C\x0D\x20]+[^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?)*)[\x09\x0A\x0B\x0C\x0D\x20]*');
* PCRE for XML attributes
define('SIMPLEPIE_PCRE_XML_ATTRIBUTE', '((?:\s+(?:(?:[^\s:]+:)?[^\s:]+)\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'))*)\s*');
define('SIMPLEPIE_NAMESPACE_XML', 'http://www.w3.org/XML/1998/namespace');
define('SIMPLEPIE_NAMESPACE_ATOM_10', 'http://www.w3.org/2005/Atom');
define('SIMPLEPIE_NAMESPACE_ATOM_03', 'http://purl.org/atom/ns#');
define('SIMPLEPIE_NAMESPACE_RDF', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
define('SIMPLEPIE_NAMESPACE_RSS_090', 'http://my.netscape.com/rdf/simple/0.9/');
define('SIMPLEPIE_NAMESPACE_RSS_10', 'http://purl.org/rss/1.0/');
* RSS 1.0 Content Module Namespace
define('SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT', 'http://purl.org/rss/1.0/modules/content/');
* (Stupid, I know, but I'm certain it will confuse people less with support.)
define('SIMPLEPIE_NAMESPACE_RSS_20', '');
define('SIMPLEPIE_NAMESPACE_DC_10', 'http://purl.org/dc/elements/1.0/');
define('SIMPLEPIE_NAMESPACE_DC_11', 'http://purl.org/dc/elements/1.1/');
* W3C Basic Geo (WGS84 lat/long) Vocabulary Namespace
define('SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO', 'http://www.w3.org/2003/01/geo/wgs84_pos#');
define('SIMPLEPIE_NAMESPACE_GEORSS', 'http://www.georss.org/georss');
define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/');
* Wrong Media RSS Namespace. Caused by a long-standing typo in the spec.
define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss');
* Wrong Media RSS Namespace #2. New namespace introduced in Media RSS 1.5.
define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2', 'http://video.search.yahoo.com/mrss');
* Wrong Media RSS Namespace #3. A possible typo of the Media RSS 1.5 namespace.
define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3', 'http://video.search.yahoo.com/mrss/');
* Wrong Media RSS Namespace #4. New spec location after the RSS Advisory Board takes it over, but not a valid namespace.
define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4', 'http://www.rssboard.org/media-rss');
* Wrong Media RSS Namespace #5. A possible typo of the RSS Advisory Board URL.
define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5', 'http://www.rssboard.org/media-rss/');
define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
define('SIMPLEPIE_NAMESPACE_XHTML', 'http://www.w3.org/1999/xhtml');
* IANA Link Relations Registry
define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/');
define('SIMPLEPIE_FILE_SOURCE_NONE', 0);
define('SIMPLEPIE_FILE_SOURCE_REMOTE', 1);
define('SIMPLEPIE_FILE_SOURCE_LOCAL', 2);
* fsockopen() file source
define('SIMPLEPIE_FILE_SOURCE_FSOCKOPEN', 4);
define('SIMPLEPIE_FILE_SOURCE_CURL', 8);
* file_get_contents() file source
define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16);
* @var mixed Error string
* @var object Instance of SimplePie_Sanitize (or other class)
* @see SimplePie::set_sanitize_class()
* @var string SimplePie Useragent
* @see SimplePie::set_useragent()
public $useragent = SIMPLEPIE_USERAGENT;
* @see SimplePie::set_feed_url()
* @var string Original feed URL, or new feed URL iff HTTP 301 Moved Permanently
* @see SimplePie::subscribe_url()
public $permanent_url = null;
* @var object Instance of SimplePie_File to use as a feed
* @see SimplePie::set_file()
* @var string Raw feed data
* @see SimplePie::set_raw_data()