dionisiy13/google-news-sitemap

Easy way to do sitemap for google news

v1.0.2 2023-03-08 16:26 UTC

This package is auto-updated.

Last update: 2025-04-08 21:06:52 UTC


README

Packagist Software License Total Downloads

Class for generating the sitemap for google news. More about google news sitemap here

Example of the sitemap from google

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
       xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
 <url>
   <loc>http://www.example.org/business/article55.html</loc>
   <news:news>
     <news:publication>
       <news:name>The Example Times</news:name>
       <news:language>en</news:language>
     </news:publication>
     <news:genres>PressRelease, Blog</news:genres>
     <news:publication_date>2008-12-23</news:publication_date>
     <news:title>Companies A, B in Merger Talks</news:title>
     <news:keywords>business, merger, acquisition, A, B</news:keywords>
     <news:stock_tickers>NASDAQ:A, NASDAQ:B</news:stock_tickers>
   </news:news>
   <image:image>
      <image:loc>https://example.com/image.jpg</image:loc>
    </image:image>
    <image:image>
      <image:loc>https://example.com/photo.jpg</image:loc>
    </image:image>
 </url>
</urlset>

Install

Via Composer

$ composer require dionisiy13/google-news-sitemap

Usage

$sitemap = new \Dionisiy\SitemapGoogle\Sitemap($pathToFile);
$siteName = "example.com";
foreach ($posts as $item) {
    $sitemap->setGenres("Blog");
    $sitemap->setKeywords($item['tags']);
    $sitemap->setLanguage("en");
    $sitemap->setLoc($item['url']);
    $sitemap->setName($siteName);
    $sitemap->setPublicationDate($item['publishAt']->getTimestamp());
    $sitemap->setTitle($item['title']);
    $sitemap->setImages($item['images']);
    $sitemap->addItem();
}
$sitemap->write();

$posts - list of news

$pathToFile - where the file should apear. For example getcwd() . '/public' . '/sitemap_google_news.xml'

$item['date'] - should be DateTime

Tags and genres could be empty.

Credits

License

The MIT License (MIT). Please see License File for more information.