![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/foogallery/includes/ |
<?php /** * Class for managing sitemaps within FooGallery */ if ( ! class_exists( 'FooGallery_Sitemaps' ) ) { class FooGallery_Sitemaps { public function __construct() { //add_action('init', array( $this, 'register_sitemaps' ) ); //add_filter( 'wp_sitemaps_posts_entry', array( $this, 'add_images_to_sitemap_entry'), 10, 3 ); } public function register_sitemaps() { //check if WordPress sitemaps are supported if ( function_exists( 'wp_register_sitemap_provider' ) && class_exists( 'WP_Sitemaps_Provider' ) ) { $provider = new FooGallery_Sitemaps_Provider(); wp_register_sitemap_provider( 'foogallery', $provider ); } } public function add_images_to_sitemap_entry( $sitemap_entry, $post, $post_type ) { $galleries = get_post_meta( $post->ID, FOOGALLERY_META_POST_USAGE ); foreach ( $galleries as $gallery_id ) { //load each gallery $gallery = FooGallery::get_by_id( $gallery_id ); if ( false === $gallery ) continue; //add each image to the sitemap image array foreach ( $gallery->attachments() as $attachment ) { $sitemap_entry['image:image'][] = array( 'image:loc' => $attachment->url, 'image:title' => $attachment->caption, 'image:caption' => $attachment->alt ); } } return $sitemap_entry; } } } if ( ! class_exists( 'FooGallery_Sitemaps_Provider' ) ) { class FooGallery_Sitemaps_Provider extends WP_Sitemaps_Provider { /** * WP_Sitemaps_My_Plugin constructor. * * @since 5.5.0 (use your plugin version) */ public function __construct() { $this->name = 'foogallery'; $this->object_type = 'image'; } public function get_url_list( $page_num, $object_subtype = '' ) { $url_list = array(); //get all galleries $galleries = foogallery_get_all_galleries(); //find all pages or posts that have galleries foreach ( $galleries as $gallery ) { $gallery_usages = $gallery->find_usages(); foreach ( $gallery_usages as $post ) { $sitemap_entry = array( 'loc' => get_permalink( $post ), ); $url_list[] = $sitemap_entry; } } return $url_list; } /** * Gets the max number of pages available for the object type. * * @since 5.5.0 (use your plugin version) * * @see WP_Sitemaps_Provider::max_num_pages * * @param string $object_subtype Optional. Default empty. * * @return int Total page count. */ public function get_max_num_pages( $object_subtype = '' ) { // again, use a function from your own plugin to fetch this data. //$pages = plugin_prefix_get_my_pagination(); //return count( $pages ); return 0; } } }