џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџШ`ьJ^џџџџf^ˆ €рђJ^*џџџџ­š|€˜ђЕ@т•K^џџџџK8$д ч€РђЕ@Ш:Х@л^;1€шђЕ@`ѓЕ@џџџџНž|€8ѓЕ@(бK^ˆбK^rrays in@d iL^і@er( РѕЕ@ііјаK^бK^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ЅъJ^џџџџf^ˆ € iL^›џџџџ­š|€˜ђЕ@Рќ”K^џџџџK8$д ч€РђЕ@А%Т@л^;1€шђЕ@`ѓЕ@џџџџНž|€8ѓЕ@F• );вK^rn $values; } /** *@heripXK^@stri7JРfџџџџјvK^`uъУU8nK^ uъУU &=L^ uъУUmK^PџhL^ЩЃK^PzL^ш ”K^@ТЮK^рKrL^  W@Caы˜!э@ЈиK^ а _“f‚М"э@џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџXпK^ џџџџ‚S€шЗ@HрK^ џџџџ8ђRrБЇH‘ы@8сK^ юЉОўч€ ы@А%Т@л^;1€шђЕ@`ѓЕ@џџџџНž|€8ѓЕ@xдK^дK^ˆCachЈдK^8еK^˜еK^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ(фK^ џџџџВ9€1€@+И@хK^ џџџџЦ-x№Ва€`žЗ@цK^ џџџџ” ‰ТЕа€ЈЏК@ И@л^;1€шђЕ@`ѓЕ@џџџџНž|€8ѓЕ@EžK^€WK^идK^ШеK^„ useЈГK^€{K^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€вK^џџџџќоєS€ѓЕ@x‰О@л^;1€шђЕ@`ѓЕ@џџџџНž|€8ѓЕ@џџџџНž|€8ѓЕ@џџџџвІq1€0ŒЗ@АK^РK^0K^@dAs F-•-sert8зK^userId, '', $key, allowE@жK^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ€ЅK^џџџџB№‹ЬБа€8ˆЗ@)џџџџ­š|€˜ђЕ@P КK^џџџџK8$д ч€РђЕ@pіО@л^;1€шђЕ@`ѓЕ@џџџџНž|€8ѓЕ@(иK^@иK^@he) р6hL^-@set(РѕЕ@--џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ЩжK^ џџџџˆЭњ—tФwƒˆе@@УK^џџџџD3тwtФwƒЈЦ@`ЄъJ^џџџџxШњqГzРџХ@џџџџНž|€8ѓЕ@џџџџвІq1€0ŒЗ@--йK^-`йK^xйK^xK^ˆ- $ШзK^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџhbK^џџџџDыpДа€ `lL^€УK^џџџџD3тwtФwƒЈЦ@ШЅъJ^џџџџxШњqГzРџХ@џџџџНž|€8ѓЕ@џџџџвІq1€0ŒЗ@@ a lh1щJ^D@ * `=hL^D@, st0Ц@DDјкK^лK^џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ љK^џџџџDыpДа€@iL^РУK^џџџџD3тwtФwƒЈЦ@№ЅъJ^џџџџxШњqГzРџХ@џџџџНž|€8ѓЕ@џџџџвІq1€0ŒЗ@шлK^мK^@ iр?hL^D@To31и›Х@D@('usџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЪaL^џџџџл^;1€шђЕ@Kъ@џџџџF ›|€XљЕ@hВK^џџџџђ2”|€ ѓЕ@РєЕ@џџџџK8$д ч€РђЕ@џџџџвІq1€0ŒЗ@ИлK^мK^мK^нK^y))); $values = []; @this 8hL^DEDDџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџЪaL^џџџџл^;1€шђЕ@8Kъ@џџџџF ›|€XљЕ@ 8gQ^џџџџK8$д ч€РђЕ@05О@л^;1€шђЕ@€ѓЕ@џџџџНž|€8ѓЕ@ˆ[ue =ˆоK^пK^xпK^№пK^@yped 2hL^[э/** * Update storage to the configuration * * @param StorageConfig $updatedStorage storage attributes * * @return StorageConfig storage config * @throws NotFoundException if the given storage does not exist in the config$tax_name . '-sitemap' . $current_page . '.xml' ), 'lastmod' => $date, ]; } } return $index; } /** * Get set of sitemap link data. * * @param string $type Sitemap type. * @param int $max_entries Entries per sitemap. * @param int $current_page Current page of the sitemap. * * @return array * * @throws OutOfBoundsException When an invalid page is requested. */ public function get_sitemap_links( $type, $max_entries, $current_page ) { global $wpdb; $links = []; if ( ! $this->handles_type( $type ) ) { return $links; } $taxonomy = get_taxonomy( $type ); $steps = $max_entries; $offset = ( $current_page > 1 ) ? ( ( $current_page - 1 ) * $max_entries ) : 0; /** This filter is documented in inc/sitemaps/class-taxonomy-sitemap-provider.php */ $hide_empty = apply_filters( 'wpseo_sitemap_exclude_empty_terms', true, [ $taxonomy->name ] ); /** This filter is documented in inc/sitemaps/class-taxonomy-sitemap-provider.php */ $hide_empty_tax = apply_filters( 'wpseo_sitemap_exclude_empty_terms_taxonomy', $hide_empty, $taxonomy->name ); $terms = get_terms( [ 'taxonomy' => $taxonomy->name, 'hide_empty' => $hide_empty_tax, 'update_term_meta_cache' => false, 'offset' => $offset, 'number' => $steps, ] ); // If there are no terms fetched for this range, we are on an invalid page. if ( empty( $terms ) ) { throw new OutOfBoundsException( 'Invalid sitemap page requested' ); } $post_statuses = array_map( 'esc_sql', WPSEO_Sitemaps::get_post_statuses() ); // Grab last modified date. $sql = " SELECT MAX(p.post_modified_gmt) AS lastmod FROM $wpdb->posts AS p INNER JOIN $wpdb->term_relationships AS term_rel ON term_rel.object_id = p.ID INNER JOIN $wpdb->term_taxonomy AS term_tax ON term_tax.term_taxonomy_id = term_rel.term_taxonomy_id AND term_tax.taxonomy = %s AND term_tax.term_id = %d WHERE p.post_status IN ('" . implode( "','", $post_statuses ) . "') AND p.post_password = '' "; /** * Filter: 'wpseo_exclude_from_sitemap_by_term_ids' - Allow excluding terms by ID. * * @api array $terms_to_exclude The terms to exclude. */ $terms_to_exclude = apply_filters( 'wpseo_exclude_from_sitemap_by_term_ids', [] ); foreach ( $terms as $term ) { if ( in_array( $term->term_id, $terms_to_exclude, true ) ) { continue; } $url = []; $tax_noindex = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'noindex' ); if ( $tax_noindex === 'noindex' ) { continue; } $url['loc'] = WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, 'canonical' ); if ( ! is_string( $url['loc'] ) || $url['loc'] === '' ) { $url['loc'] = get_term_link( $term, $term->taxonomy ); } $url['mod'] = $wpdb->get_var( $wpdb->prepare( $sql, $term->taxonomy, $term->term_id ) ); if ( $this->include_images ) { $url['images'] = $this->get_image_parser()->get_term_images( $term ); } // Deprecated, kept for backwards data compat. R. $url['chf'] = 'daily'; $url['pri'] = 1; /** This filter is documented at inc/sitemaps/class-post-type-sitemap-provider.php */ $url = apply_filters( 'wpseo_sitemap_entry', $url, 'term', $term ); if ( ! empty( $url ) ) { $links[] = $url; } } return $links; } /** * Check if taxonomy by name is valid to appear in sitemaps. * * @param string $taxonomy_name Taxonomy name to check. * * @return bool */ public function is_valid_taxonomy( $taxonomy_name ) { if ( WPSEO_Options::get( "noindex-tax-{$taxonomy_name}" ) === true ) { return false; } if ( in_array( $taxonomy_name, [ 'link_category', 'nav_menu' ], true ) ) { return false; } if ( $taxonomy_name === 'post_format' && WPSEO_Options::get( 'disable-post_format', false ) ) { return false; } /** * Filter to exclude the taxonomy from the XML sitemap. * * @param bool $exclude Defaults to false. * @param string $taxonomy_name Name of the taxonomy to exclude.. */ if ( apply_filters( 'wpseo_sitemap_exclude_taxonomy', false, $taxonomy_name ) ) { return false; } return true; } /** * Get the Image Parser. * * @return WPSEO_Sitemap_Image_Parser */ protected function get_image_parser() { if ( ! isset( self::$image_parser ) ) { self::$image_parser = new WPSEO_Sitemap_Image_Parser(); } return self::$image_parser; } }