diff --git a/django/contrib/sitemaps/management/commands/ping_google.py b/django/contrib/sitemaps/management/commands/ping_google.py new file mode 100644 index 00000000000..afff04b39c6 --- /dev/null +++ b/django/contrib/sitemaps/management/commands/ping_google.py @@ -0,0 +1,14 @@ +from django.core.management.base import BaseCommand +from django.contrib.sitemaps import ping_google + + +class Command(BaseCommand): + help = "Ping google with an updated sitemap, pass optional url of sitemap" + + def execute(self, *args, **options): + if len(args) == 1: + sitemap_url = args[0] + else: + sitemap_url = None + ping_google(sitemap_url=sitemap_url) + diff --git a/docs/sitemaps.txt b/docs/sitemaps.txt index eb749dda2fb..6a16e618791 100644 --- a/docs/sitemaps.txt +++ b/docs/sitemaps.txt @@ -317,3 +317,14 @@ A more efficient solution, however, would be to call ``ping_google()`` from a cron script, or some other scheduled task. The function makes an HTTP request to Google's servers, so you may not want to introduce that network overhead each time you call ``save()``. + +Pinging Google via `manage.py` +------------------------------ + +**New in Django development version** + +Once the sitemaps application is added to your project, you may also +ping the Google server's through the command line manage.py interface:: + + python manage.py ping_google [/sitemap.xml] +