XML карта сайта на WordPress без плагинов moneyinnetwork_xml_sitemap

Опубликовано: 21.10.2017

Пару дней назад решил избавиться еще от одного увесистого и прожорливого плагина, который строил XML карту сайта на WordPress , причем, несмотря на множество настроек и отличную репутацию среди вебмастеров, этот плагин никак не хотел добавлять к карте дочерние страницы. Вернее, он их добавлял, но при этом уровень вложенности был не более одной страницы и то работало это как-то избирательно (кстати, соответствующую опцию в настройках я активировал). Плагин этот Google XML Sitemaps (может, у меня версия была не последняя, кто знает).

На эту проблему я обратил внимание несколько дней назад. Причем, очевидной лично для меня она стала в тот момент, когда я реализовал у себя на сайте этот простецкий форум, создал несколько разделов и тем и увидел, что в карте-то sitemap.xml нифига нет моих форумных страниц с темами. Во дела, подумал я, и, имея начальный опыт в программировании на php и mysql, решил-таки, что мне нужна XML карта сайта на WordPress без всяких там плагинов , чтобы я точно знал: что, как, куда, откуда и почему .

Порывшись в закромах интернета, подобных решений не нашел. Все вебмастера в сети, на которых меня выводил “Яша”, использовали готовые “плагинные” решения для XML карт WordPress. Засучив рукава, приступил к ночному ваянию кода (днем-то дела несколько иного плана). Вот, собственно, то, что вышло:

//обсуждение функции построения XML карт сайтов moneyinnetwork_xml_sitemap ведется на сайте автора в теме: //http://moneyinnetwork.ru/forum/sajtostroenie-sistemy-upravleniya-sajtom-seo/vse-o-vordpress-wordpress/xml-karta-sajta-na-wordpress-bez-plaginov-moneyinnetwork_xml_sitemap function moneyinnetwork_xml_sitemap ( $home_priority = '1.0' , $page_priority = '0.6' , $post_priority = '0.6' , $other_priority = '0.3' ) { global $wpdb ; $result = $wpdb - > get_results ( "SELECT ID, post_modified_gmt, post_type FROM $wpdb->posts WHERE post_status='publish' ORDER BY post_modified_gmt DESC" , 'ARRAY_A' ) ; if ( ! empty ($result ) ) { $f = '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' ; $i = 0 ; foreach ( $result as $row ) { $priority = $other_priority ; if ( $row [ 'post_type' ] == 'page' ) $priority = $page_priority ; if ( $row [ 'post_type' ] == 'post' ) $priority = $post_priority ; if ( $i == 0 ) { $f = $f. '<url><loc>' .get_home_url ( ) .'</loc><lastmod>' .date ( 'c' , strtotime ($row [ 'post_modified_gmt' ] ) ) .'</lastmod><changefreq>daily</changefreq><priority>' .$home_priority. '</priority></url>' ; $i = 1 ; } $f = $f. '<url><loc>' .get_permalink ( $row [ 'ID' ] ) .'</loc><lastmod>' .date ( 'c' , strtotime ($row [ 'post_modified_gmt' ] ) ) .'</lastmod><changefreq>daily</changefreq><priority>' .$priority. '</priority></url>' ; } $f = $f. '</urlset>' ; $fp = fopen ( $_SERVER [ 'DOCUMENT_ROOT' ] .'/sitemap.xml' , 'w' ) ; fwrite ( $fp, $f ) ; fclose ( $fp ) ; $result = wp_remote_get ( 'http://www.google.com/ping?sitemap=' .get_home_url ( ) .'/sitemap.xml' ) ; if ( ! is_wp_error ( $result ) || wp_remote_retrieve_response_code ( $result ) === 200 ) { //Карта успешно отправлена в Google. //Это просто под будущие разработки, если надо, конечно. } } return ; }

Итак, функция moneyinnetwork_xml_sitemap() строит XML карту сайта на WordPress, сохраняет ее в корневой директории сайта и “пингует” (отправляет) ее в Google (“примочка”, наверное, бесполезная, если у Вас есть кабинет вебмастера в Google, где Вы явно прописали карту сайта). Функцию moneyinnetwork_xml_sitemap() “укладываем” к функциям темы, то есть размещаем ее в functions.php.

3D стерео фильмы для 5D
    Как купить билеты на поезд

    Я всегда в последнее время пользуюсь услугами настоящего интернет сайта. Он у меня внушает доверие. И здесь придбати квитки возможно в любое

    Поступления в университет
    Перед всеми выпускниками школ и их родителями сейчас стоит задача – выбор предметов единого государственного экзамена (ЕГЭ). От того, какие ЕГЭ будут выбраны, зависит, поступит ребенок в ВУЗ или нет.

    Видеонаблюдение Novicam в Екатеринбурге
    По своей сути подключение видеорегистратора к локальной сети совершенно не отличается от подключения обычного компьютера к локальной сети.  Для того что бы система видеонаблюдения начала функционировать

    Кредит онлайн на картку
    Каждый из нас может оказаться в такой ситуации, когда срочно нужны деньги. И что же делать, если деньги понадобились прямо здесь и сейчас. В различных кредитных организациях оформление кредита может занять

    Комплект инсталляции Grohe 6в1
    Вместо обычного унитаза многие люди предпочитают, чтобы было сочетание инсталлированной конструкции унитаза с определенным видом отделки. Особенно такая инсталляция включают в себя раму, которая покрыта

    Авіаквитки купити
    В наше время все больше людей путешествуют с помощью самолета. Ведь авиаперевозки пассажирские стали намного доступнее. И приобрести билеты становится с каждым днём все легче и легче. К примеру, на данном

    Повербанк оптом
    В данной группе представлены переносные зарядные устройства Power Banks. Power Banks - Повер банк, Пауер банк, Павер банк, как только не переводят на русский язык. Единого мнения на счет перевода не будет.

    Cbd vape pen buy online
    Представители просвещенной части прогрессивного человечества сегодня являются активными приверженцами здорового образа жизни и предпочитают лечится только с помощью средств натурального происхождения.

    Зарплата ру
    Еженедельный журнал работа и зарплата вакансии в Москве выходит крупным тиражом в 100 тыс. экземпляров, имеет большую аудиторию читателей, среди которых люди с различным образованием, доходом и социальным

    Уголок покупателя
    По закону продавец обязан предоставить Книгу жалоб по требованию покупателя, или же покупатель может самостоятельно сделать в ней запись. На жалобу в Книге магазин должен письменно отреагировать в течение

rss