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
    Как купить билеты на поезд

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

    Тайверб Тайверб
    Прочие ингредиенты: целлюлоза микрокристаллическая, повидон К30, натрия крахмалгликолят, магния стеарат, opadry желтый YS-1-12524-A. Лапатиниб содержится в форме лапатиниба дитосилата моногидрата. № UA/8847/01/01

    Шкафы купе в наличии
    Известно, что шкафы-купе поступили в ассортимент магазинов корпусной мели более 20 лет назад и сразу же заняли ведущие роли среди другой мебели. Их используют в помещениях, где разместить стандартный

    Копаксон
    Конкурентно замещает антигены миелина в местах связывания с молекулами главного комплекса гистосовместимости класса II на поверхности клеток, несущих антигены. Следствием этого является активация образования

    Begin.com.ua/
    Подбором персонала занимается HR-менеджер, но часто такая должность отсутствует в компании, и его обязанности берут на себя или директор, или его заместитель. Если выбор сотрудников окажется неправильным 

    Бесплатная раскрутка сайтов ucoz
    Необходимо для себя выяснить, какая цель преследуется при раскрутке Интернет проекта. Здесь всё просто, так как чаще всего это возможность при помощи различных способов и средств увеличить поток посетителей.

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

    Где купить качественные ссылки
    Большинство информации предлагаемой для изучения информации по продвижению ресурсов, непременно во главу угла ставят использование в интернет ресурсах качественного, уникального контента. Также для продвижения

    Товаров для дома
    Исходя из этих критериев, можно легко преподнести себя в том или ином деле. Хороший доход может быть на любой работе. Но хороших друзей на рабочем месте выбрать сложно. В такой ситуации больше побеждает

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

rss