{"id":1896488,"date":"2019-10-18T13:19:14","date_gmt":"2019-10-18T17:19:14","guid":{"rendered":"https:\/\/theeventscalendar.com\/knowledgebase\/using-tribe_get_events-2\/"},"modified":"2026-04-23T15:42:15","modified_gmt":"2026-04-23T19:42:15","slug":"query-events","status":"publish","type":"post","link":"https:\/\/theeventscalendar.com\/knowledgebase\/query-events\/","title":{"rendered":"Querying Events"},"content":{"rendered":"\n<p>Sometimes it is handy to query for and list events outside of existing views, or in places where widgets and shortcodes are unsuitable. Because events are a custom post type, the usual WordPress paradigms apply \u2014 you can use <code>WP_Query<\/code> directly, or use the <code>tribe_get_events()<\/code> helper function that The Events Calendar provides. This article covers both approaches: how <code>tribe_get_events()<\/code> works, how to craft custom queries with date ranges and display types, and how to handle more advanced scenarios like separating single-day events from multi-day ones.<\/p>\n\n\n\n<p>If you are already familiar with the <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\"><code>WP_Query<\/code> class<\/a> or the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_posts\/\"><code>get_posts()<\/code> function<\/a> provided by WordPress, working with <code>tribe_get_events()<\/code> should feel very familiar. For anyone who is unfamiliar with those parts of WordPress, reviewing that linked documentation is strongly recommended \u2014 especially if you want to do something complex.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-using-tribe-get-events\">Using tribe_get_events()<\/h2>\n\n\n\n<iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/C3XIAMunn10\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-basic-usage\">Basic Usage<\/h4>\n\n\n\n<p>When you call <code>tribe_get_events()<\/code> you can expect it to return an array of events (or an empty array if nothing matches). You can call it with no arguments at all:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ntribe_get_events( array( &#039;ends_after&#039; =&gt; &#039;now&#039; ) );\n<\/pre><\/div>\n\n\n<p>The above retrieves a list of upcoming events. Because no count was specified, it defaults to the value set in <strong>Events \u2192 Settings \u2192 General<\/strong> for the number of events to show per page (10 by default).<\/p>\n\n\n\n<p>There is a very strong link between <code>tribe_get_events()<\/code> and <code>WP_Query<\/code> \u2014 you can use most or all of the same query arguments in both. For example, to limit results to 5 upcoming events:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/ Retrieve the next 5 upcoming events\n$events = tribe_get_events( &#x5B;\n   &#039;posts_per_page&#039; =&gt; 5,\n   &#039;start_date&#039;     =&gt; &#039;now&#039;,\n] );\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-displaying-events\">Displaying Events<\/h4>\n\n\n\n<p>Once you have retrieved events, the simplest approach is to loop through the array directly:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$events = tribe_get_events( &#x5B; &#039;posts_per_page&#039; =&gt; 5 ] );\n\n\/\/ Loop through the events, displaying the title and content for each\nforeach ( $events as $event ) {\n   echo &#039;&amp;lt;h4&gt;&#039; . $event-&gt;post_title . &#039;&amp;lt;\/h4&gt;&#039;;\n   echo wpautop( $event-&gt;post_content );\n}\n<\/pre><\/div>\n\n\n<p>This quick approach is fine for inspecting event properties, but to display them properly it is better to do things the WordPress way and use template tags:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/ Ensure the global $post variable is in scope\nglobal $post;\n\n\/\/ Retrieve the next 5 upcoming events\n$events = tribe_get_events( &#x5B; &#039;posts_per_page&#039; =&gt; 5 ] );\n\n\/\/ Loop through the events: set up each one as\n\/\/ the current post then use template tags to\n\/\/ display the title and content\nforeach ( $events as $post ) {\n   setup_postdata( $post );\n\n   \/\/ This time, let&#039;s throw in an event-specific\n   \/\/ template tag to show the date after the title!\n   echo &#039;&amp;lt;h4&gt;&#039; . $post-&gt;post_title . &#039;&amp;lt;\/h4&gt;&#039;;\n   echo &#039; &#039; . tribe_get_start_date( $post ) . &#039; &#039;;\n}\n<\/pre><\/div>\n\n\n<p>This approach is more readable \u2014 you are not constantly referencing the event\/post object directly \u2014 and you also benefit from all the filters and other good things that WordPress (and The Events Calendar) handle behind the scenes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-event-query-arguments\">Event Query Arguments<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-date-arguments\">Date Arguments<\/h4>\n\n\n\n<p>WordPress is built around posts, which have publication and last-modified dates. When querying events, those fields can be useful, but most of the time you are more interested in the actual event dates. The Events Calendar exposes two special arguments for this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>start_date<\/code><\/strong> \u2014 the start of the date range you are interested in<\/li>\n\n\n\n<li><strong><code>end_date<\/code><\/strong> \u2014 the end of the date range you are interested in<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-recommended-date-formats\">Recommended Date Formats<\/h4>\n\n\n\n<p>The recommended formats for <code>start_date<\/code> and <code>end_date<\/code> values are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Y-m-d H:i<\/code> (e.g. <code>2014-12-31 12:00<\/code> for noon on December 31st, 2014) when you need to specify a time<\/li>\n\n\n\n<li><code>Y-m-d<\/code> (e.g. <code>2015-07-01<\/code> for July 1st, 2015) when time precision is not needed<\/li>\n<\/ul>\n\n\n\n<p>Both arguments also accept any value that the PHP <a href=\"http:\/\/php.net\/manual\/en\/function.date.php\"><code>strtotime()<\/code><\/a> function accepts. Examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>now<\/code> \u2014 the current second<\/li>\n\n\n\n<li><code>today<\/code> \u2014 the first second of today<\/li>\n\n\n\n<li><code>last month<\/code> \u2014 the start of last month<\/li>\n\n\n\n<li><code>next monday<\/code> \u2014 the start of the day on the next Monday<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-gotchas-to-be-aware-of\">Gotchas to Be Aware Of<\/h4>\n\n\n\n<p>Setting a <code>start_date<\/code> earlier than today when querying for <em>upcoming<\/em> events will have no impact \u2014 it is automatically overwritten. Similarly, setting an <code>end_date<\/code> later than today when querying for <em>past<\/em> events will have no effect.<\/p>\n\n\n\n<p>When using <code>end_date<\/code> to define the final day of a range, be sure to include the time component (e.g. <code>2014-10-31 23:59<\/code>) if you want all events on that final day to be included.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-the-eventdisplay-argument\">The eventDisplay Argument<\/h4>\n\n\n\n<p>Another event-specific argument is <code>eventDisplay<\/code>. This shapes the query in a way that matches a particular calendar view \u2014 for example, <code>month<\/code> is used when the visitor opens Month View. Depending on what you are building, this may not need to be set explicitly. However, unless you specifically want the same behavior as an existing view, it is best to set it to <code>custom<\/code> to prevent The Events Calendar from making assumptions about the nature of your query:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$events = tribe_get_events( &#x5B;\n   &#039;eventDisplay&#039; =&gt; &#039;custom&#039;,\n   &#039;start_date&#039;   =&gt; &#039;now&#039;,\n] );\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-advanced-taxonomy-categories-and-meta\">Advanced: Taxonomy, Categories, and Meta<\/h4>\n\n\n\n<p>You can restrict your query to specific categories, tags, or event metadata using the same arguments you would use with <code>WP_Query<\/code>. For full documentation on taxonomy queries and other advanced parameters, refer to the <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_query\/\">WP_Query documentation<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-examples\">Examples<\/h4>\n\n\n\n<p>All events in a specific date range:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/ Retrieve all events in October 2014\n$events = tribe_get_events( &#x5B;\n   &#039;start_date&#039;   =&gt; &#039;2014-10-01 00:01&#039;,\n   &#039;end_date&#039;     =&gt; &#039;2014-10-31 23:59&#039;,\n] );\n<\/pre><\/div>\n\n\n<p>Upcoming events starting on or after a certain date:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/ Retrieve any upcoming events starting January 1st, 2015, or later\n$events = tribe_get_events( &#x5B;\n   &#039;start_date&#039;   =&gt; &#039;2015-01-01&#039;,\n] );\n<\/pre><\/div>\n\n\n<p>Next 5 events with a specific tag:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/ Grab the 5 next &quot;party&quot; events (by tag)\n$events = tribe_get_events( &#x5B;\n   &#039;start_date&#039;     =&gt; &#039;now&#039;,\n   &#039;posts_per_page&#039; =&gt; 5,\n   &#039;tag&#039;            =&gt; &#039;party&#039; \/\/ or whatever the tag name is\n] );\n<\/pre><\/div>\n\n\n<p>Next 8 featured events:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n\/\/ Grab the next 8 featured events\n$events = tribe_get_events( &#x5B;\n   &#039;start_date&#039;     =&gt; &#039;now&#039;,\n   &#039;posts_per_page&#039; =&gt; 8,\n   &#039;featured&#039;       =&gt; true,\n] );\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-querying-single-day-and-multi-day-events-separately\">Querying Single-Day and Multi-Day Events Separately<\/h2>\n\n\n\n<p>By default, <code>tribe_get_events()<\/code> returns all upcoming events, including long-running multi-day events. If you need to separate or exclude them, there are a few approaches depending on your needs.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-simple-approach-filtering-in-the-loop\">Simple Approach: Filtering in the Loop<\/h4>\n\n\n\n<p>The simplest method is to skip multi-day events inside the loop using <code>tribe_event_is_multiday()<\/code>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$events = tribe_get_events();\nforeach ( $events as $event ):\n  \/\/ Skip any multiday events!\n  if ( tribe_event_is_multiday( $event-&gt;ID ) ) continue;\n        \/\/ ... Code to print out event details ...\n  endif;\nendforeach;\n<\/pre><\/div>\n\n\n<p>The downside of this approach is that if you want to show exactly 10 upcoming events, there is no guarantee that none of those results will be multi-day events \u2014 some may be discarded and fewer than 10 will ultimately be shown to the visitor.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-a-quick-fix-overshooting-the-query\">A Quick Fix: Overshooting the Query<\/h4>\n\n\n\n<p>An easy workaround is to request more results than you need:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$events = tribe_get_events( array(\n  &#039;posts_per_page&#039; =&gt; 50\n) );\n<\/pre><\/div>\n\n\n<p>This pulls up to 50 events rather than the default count. It is not the most efficient approach, but it is quick to implement. To ensure you show at most 10 events while fetching 50, combine this with a counter:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$counter = 0;\n$desired = 10;\n\n$events = tribe_get_events( array(\n  &#039;posts_per_page&#039; =&gt; 50\n) );\n\nforeach ( $events as $event ):\n  if ( tribe_event_is_multiday( $event-&gt;ID ) ) continue;\n  if ( ++$counter &gt; $desired ) break;\n        \/\/ ... Code to print out event details ...\nendforeach;\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-advanced-excluding-multi-day-events-at-the-query-level\">Advanced: Excluding Multi-Day Events at the Query Level<\/h4>\n\n\n\n<p>For a cleaner solution, you can filter multi-day events out at the database query level. The class below wraps <code>tribe_get_events()<\/code> and adds SQL joins and a <code>WHERE<\/code> condition to exclude any event whose duration exceeds 24 hours (86,400 seconds):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nclass SingleDayEvents {\n  public $results;\n\n  public static function fetch( $args = array() ) {\n    $query = new self( $args );\n    return $query-&gt;results;\n  }\n\n  public function __construct( $args = array() ) {\n    $this-&gt;setup();\n    $this-&gt;query( $args );\n    $this-&gt;teardown();\n  }\n\n  protected function setup() {\n    add_filter( &#039;tribe_events_query_posts_joins&#039;,  array( $this, &#039;posts_join&#039; ) );\n    add_filter( &#039;tribe_events_query_posts_fields&#039;, array( $this, &#039;posts_fields&#039; ) );\n    add_filter( &#039;posts_where&#039;, array( $this, &#039;posts_where&#039; ), 100 );\n  }\n\n  protected function teardown() {\n    remove_filter( &#039;tribe_events_query_posts_joins&#039;,  array( $this, &#039;posts_join&#039; ) );\n    remove_filter( &#039;tribe_events_query_posts_fields&#039;, array( $this, &#039;posts_fields&#039; ) );\n    remove_filter( &#039;posts_where&#039;, array( $this, &#039;posts_where&#039; ), 100 );\n  }\n\n  public function query( $args ) {\n    $this-&gt;results = tribe_get_events( $args );\n  }\n\n  \/**\n   * It may be that PRO implements some of this for us, if so - great! If not - the joins will be\n   * made even if we are only using core.\n   *\n   * @param  array $fields\n   * @return array\n   **\/\n  public function posts_fields( $fields ) {\n    $fields&#x5B;&#039;event_start_date&#039;] = &quot;tribe_event_start_date.meta_value as EventStartDate&quot;;\n    $fields&#x5B;&#039;event_end_date&#039;]   = &quot;tribe_event_end_date.meta_value as EventEndDate&quot;;\n    return $fields;\n  }\n\n  \/**\n   * Counterpart to $this-&gt;posts_fields().\n   *\n   * @param  array $joins\n   * @return array\n   **\/\n  public function posts_join( $joins ) {\n    global $wpdb;\n    $joins&#x5B;&#039;event_start_date&#039;] = &quot; LEFT JOIN $wpdb-&gt;postmeta as tribe_event_start_date ON ( $wpdb-&gt;posts.ID = tribe_event_start_date.post_id AND tribe_event_start_date.meta_key = &#039;_EventStartDate&#039; ) &quot;;\n    $joins&#x5B;&#039;event_end_date&#039;]   = &quot; LEFT JOIN $wpdb-&gt;postmeta as tribe_event_end_date ON ( $wpdb-&gt;posts.ID = tribe_event_end_date.post_id AND tribe_event_end_date.meta_key = &#039;_EventEndDate&#039; ) &quot;;\n    return $joins;\n  }\n\n  \/**\n   * Adds logic to reject multiday events from the result set.\n   *\n   * The logic is still relatively crude - it treats any event longer than 24hrs in duration as &quot;multiday&quot;\n   * whereas in practice definitions may be more elastic than this but it could of course be modified\n   * further to meet specific needs.\n   *\n   * @param  string $where_sql\n   * @return string\n   **\/\n  public function posts_where( $where_sql ) {\n    return &quot; $where_sql AND UNIX_TIMESTAMP( tribe_event_end_date.meta_value ) - UNIX_TIMESTAMP( tribe_event_start_date.meta_value ) &amp;lt; 86400 &quot;;\n  }\n}\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-usage\">Usage<\/h4>\n\n\n\n<p>Fetch all upcoming single-day events with no additional arguments:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$single_day_events = SingleDayEvents::fetch();\n<\/pre><\/div>\n\n\n<p>The normal range of arguments can also be passed. For instance, to get only upcoming events in list display mode:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$events = SingleDayEvents::fetch( &#x5B; &#039;eventDisplay&#039; =&gt; &#039;list&#039; ] );\n<\/pre><\/div>\n\n\n<p>No multi-day events will be included in the result set. Feel free to adjust and modify the class to better suit your needs \u2014 in particular, the 24-hour threshold in <code>posts_where()<\/code> can be changed if your definition of \u201cmulti-day\u201d differs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes it is handy to query for and list events outside of existing views, or in places where widgets and shortcodes are unsuitable. Because events are a custom post type, the usual WordPress paradigms apply \u2014 you can use WP_Query directly, or use the tribe_get_events() helper function that The Events Calendar provides. This article covers&#8230;<\/p>\n","protected":false},"author":3,"featured_media":1955565,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_swpsp_post_exclude":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"ep_exclude_from_search":false,"footnotes":""},"categories":[24,345,59],"tags":[25,58],"stellar-product-taxonomy":[161],"class_list":["post-1896488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customizing","category-developer","category-php","tag-customizations","tag-php","stellar-product-taxonomy-the-events-calendar"],"acf":[],"taxonomy_info":{"category":[{"value":24,"label":"Customizing"},{"value":345,"label":"Developer"},{"value":59,"label":"PHP"}],"post_tag":[{"value":25,"label":"Customizations"},{"value":58,"label":"PHP"}],"stellar-product-taxonomy":[{"value":161,"label":"The Events Calendar"}]},"featured_image_src_large":["https:\/\/images.theeventscalendar.com\/kb\/uploads\/2023\/02\/social-share-1024x538.png",1024,538,true],"author_info":{"display_name":"Jaime Marchwinski","author_link":"https:\/\/theeventscalendar.com\/knowledgebase\/author\/jaimetri-be\/"},"comment_info":0,"category_info":[{"term_id":24,"name":"Customizing","slug":"customizing","term_group":0,"term_taxonomy_id":24,"taxonomy":"category","description":"","parent":0,"count":67,"filter":"raw","term_order":"0","cat_ID":24,"category_count":67,"category_description":"","cat_name":"Customizing","category_nicename":"customizing","category_parent":0},{"term_id":345,"name":"Developer","slug":"developer","term_group":0,"term_taxonomy_id":345,"taxonomy":"category","description":"","parent":0,"count":9,"filter":"raw","term_order":"0","cat_ID":345,"category_count":9,"category_description":"","cat_name":"Developer","category_nicename":"developer","category_parent":0},{"term_id":59,"name":"PHP","slug":"php","term_group":0,"term_taxonomy_id":59,"taxonomy":"category","description":"","parent":24,"count":52,"filter":"raw","term_order":"0","cat_ID":59,"category_count":52,"category_description":"","cat_name":"PHP","category_nicename":"php","category_parent":24}],"tag_info":[{"term_id":25,"name":"Customizations","slug":"customizations","term_group":0,"term_taxonomy_id":25,"taxonomy":"post_tag","description":"","parent":0,"count":31,"filter":"raw","term_order":"0"},{"term_id":58,"name":"PHP","slug":"php","term_group":0,"term_taxonomy_id":58,"taxonomy":"post_tag","description":"","parent":20,"count":22,"filter":"raw","term_order":"0"}],"_links":{"self":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1896488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/comments?post=1896488"}],"version-history":[{"count":5,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1896488\/revisions"}],"predecessor-version":[{"id":1969101,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/posts\/1896488\/revisions\/1969101"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/media\/1955565"}],"wp:attachment":[{"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/media?parent=1896488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/categories?post=1896488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/tags?post=1896488"},{"taxonomy":"stellar-product-taxonomy","embeddable":true,"href":"https:\/\/theeventscalendar.com\/knowledgebase\/wp-json\/wp\/v2\/stellar-product-taxonomy?post=1896488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}