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
    Шкафы купе
    Еще несколько десятилетий назад мы и понятия не имели о таком удобном и эстетичном виде мебели, как шкаф-купе. Сегодня же большинство из нас просто не представляют себе: как можно было без него обходиться?

    I
    В последние годы доставка цветов на дом пользуется все большей популярностью. С одной стороны, у современных мужчин порой просто не хватает времени, чтобы сделать любимой женщине, матери или подруге достойный

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

    Автобус в Крым из Харькова
    Собираясь путешествовать, задумываясь о поездке к родным и близким или направляясь в командировку, многие задумываются, какой выбрать маршрут и способ передвижения? Доехать до места назначения удобно,

    Качественные услуги печати рекламы
    Очевидно, что рекламу делают не для того, чтобы показать друзьям или выставить на конкурс. Реклама, в отличие от художественных произведений, не является самоцелью, она не объект любования – это вполне

    Сервіс кейс case
    Что такое кейсы? Этот вопрос задают, как правило, студенты, впервые столкнувшиеся с этим термином. Однако это понятие становится популярным в бизнес-сообществах. Перед тем, как ответить на вопрос о том,

    Дистанционное обучение по канадской системе
    Каждому родителю хочется, чтобы его ребёнок был самым счастливым, разносторонне развитым и успешным. А каждый подросток желает путешествовать. Сейчас открываются невероятные возможности объединить и

    Хороший японский мульфильм
    Тиока Кимитоси - это знаковая фигура для всего японского и мирового аниме. У него свой стиль, он не просто создает рисованные фэнтези, он рисует миры, которые живут своей неповторимой жизнью, отдельной

    Гипермаркеты донецка днр
      Центральный Республиканский Банк начинает работать с денежными переводами из Российской Федерации в Донецкую Народную Республику. Теперь, граждане ДНР могут получить долгожданную финансовую помощь

    Арт-терапия, разукрашки
    Содержание Введение 1. История возникновения арт-терапии 2. Теория арт-терапии 3. Суть, подходы, цели арт-терапии 4. Оригами – относительно новое направление в арт-терапии Заключение Список литературы

rss