`sitetree_is_building_sitemap`

sitetree_is_building_sitemap è un'azione eseguita ogni volta che una Google Sitemap viene ricostruita, dopo che tutti gli elementi di una data Google Sitemap sono stati generati.

Aggiungere Elementi <url> ad una Google Sitemap

Il codice che segue aggiunge un elemento <url> comprensivo di elementi figlio <image> alla prima Google Sitemap generata per il tipo di contenuto 'page'.

function add_url_element_to_first_page_sitemap( $sitemapBuilder, $indexer ) {
    if ( $indexer->getRequestedSitemapUID() == 'page-1' ) {
        // Array of SiteTree\ImageElement objects.
        $images = array(
            \SiteTree\ImageElement::make( 'https://luigicavalieri.com/image-1.jpg', 'Image Title', 'Image caption.' ),
            \SiteTree\ImageElement::make( 'https://luigicavalieri.com/image-2.jpg', 'Image Title', 'Image caption.' ),
            \SiteTree\ImageElement::make( 'https://luigicavalieri.com/image-3.jpg', 'Image Title', 'Image caption.' )
        );

        $sitemapBuilder->buildURLElement( 'https://luigicavalieri.com/', '2021-04-19', $images );
    }
}

add_action( 'sitetree_is_building_sitemap', 'add_url_element_to_first_page_sitemap', 10, 2 );

Il parametro $sitemapBuilder è un reference all'oggetto di classe SiteTree\SitemapBuilder a cui è assegnato il compito di generare la Google Sitemap, mentre il parametro $indexer è un reference all'oggetto incaricato di generare e gestire l'indice delle sitemap.

L'interfaccia di classe del $sitemapBuilder, dichiarata in includes/builders/builders-interfaces.php, è la seguente:

interface SitemapBuilderInterface {
    /**
     * Limit set according to the XML schema defined for 
     * the Image Sitemap extension.
     *
     * @since 5.0
     */
    const IMAGES_PER_URL_ELEMENT = 1000;

    /**
     * @since 5.0
     *
     * @param string $url         Absolute URL of a publicly accessible web page.
     * @param string|int $lastmod Optional. The date on which the page was last modified or the timestamp of said date.
     *                            Valid date formats at {@link https://www.php.net/manual/en/datetime.formats.php}.
     * @param array $images       Optional. Array of ImageElement objects, {@see ImageElementInterface}.
     *                            Its size must not exceed {@see self::IMAGES_PER_URL_ELEMENT}.       
     */
    public function buildURLElement( $url, $lastmod = '', $images = array(), ...$deprecated_args );
}

L'interfaccia della classe SiteTree\ImageElement è dichiarata in includes/builders/image-element.class.php come segue:

interface ImageElementInterface {
    /**
     * Returns a ImageElement object.
     *
     * @since 5.0
     *
     * @param string $url     Absolute URL of the image file.
     * @param string $title   Optional.
     * @param string $caption Optional.
     * @return object
     */
    public static function make( $url, $title = '', $caption = '' );
}
Last update: