Мне нравится жестко кодировать все на моих веб-сайтах WordPress без использования каких-либо плагинов. Есть ли способ генерировать или обновлять мою карту сайта каждый раз, когда я публикую/обновляю сообщение в одном из своих мультисайтовых блогов, без использования плагинов?
Share
Вы понимаете, что между «жестким кодом» и плагином нет реальной разницы, кроме того факта, что плагины переносимы и, следовательно, с ними легче работать?
Проголосуйте за ограничение «без плагина».
Нежелание добавлять ДРУГОЙ плагин на КЛИЕНТСКИЙ сайт вполне допустимо для такой простой задачи. Это правда, что код тот же, но, возможно, ОП этого не знал
как сказал чип, это бессмысленный вопрос, кроме того, делать код карты сайта, который не сломает сайт при его создании, нетривиально, и хороший ответ не будет соответствовать формату сайта.
Не могли бы вы объяснить свой код и внести изменения, чтобы переформатировать его для удобочитаемости? Спасибо
@locutor-antonio-cezar @gabriel Вам нужно изменить на
Weekly
изweekly
-заError 1840: Element '{http://www.sitemaps.org/schemas/sitemap/0.9}changefreq': [facet 'enumeration'] The value 'Weekly' is not an element of the set {'always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'}
.Я не думаю, что это сработает на мультисайтах — это запись sitemap.xml в одно и то же расположение файла на сервере, поэтому будет только 1 фактический файл sitemap.xml, который будет перезаписываться всякий раз, когда какой-либо блог вносит изменения…
запрос всех сообщений на сайте при каждом сохранении — верный способ обрушить сайт с нетривиальным объемом контента. кроме того, это будет делать сохранение новых сообщений все медленнее и медленнее с каждым опубликованным сообщением.
Следующий код работает сразу же. Ваша карта сайта будет отображаться по адресу: https://your-website-name.com/sitemap.xml.
Каждый раз, когда вы создаете или обновляете страницу, сообщение или пользовательский тип сообщения, оно будет отображаться. Не забудьте добавить название вашего пользовательского типа записи:
Прежде чем использовать код, представленный в ответе w3uiguru, мне пришлось внести некоторые улучшения, соответствующие принятому стандарту для файлов XML. Код ниже:
Я не знаю, работает ли это на мультисайтах, но для меня это работает идеально в одной установке WordPress.
Когда вы создаете/обновляете какие-либо сообщения или страницы, он создает файл sitemap.xml и обновляет ссылки (URL-адреса) самыми последними (последними измененными).
Скопируйте и вставьте приведенный ниже код в файл functions.php вашей активной темы:
Я немного изменил код @locutor-antonio-cezar, так как искал очень специфический вариант использования. Мне нужна была карта сайта, специально написанная для Новостей Google. Что отличается? Вся разметка следует правилам. В моем конкретном случае я ограничил количество постов до 20. Также пропадают посты старше 2 дней. Может кому нужно это: