Utwórz niestandardową mapę witryny XML w WordPressie bez użycia wtyczek

Jak stworzyć niestandardową mapę witryny XML w WordPressie; Najlepsza wtyczka do niestandardowej mapy witryny XML w WordPressie; Ręczne tworzenie mapy witryny XML w WordPressie; Generowanie mapy witryny XML bez wtyczki w WordPressie; Samouczek dotyczący niestandardowej mapy witryny XML w WordPressie; Jak stworzyć mapę witryny XML dla strony WordPress; Przewodnik po konfiguracji mapy witryny XML w WordPressie; Jak dodać niestandardowe adresy URL do mapy witryny XML w WordPressie; Rekomendacje wtyczek do mapy witryny XML w WordPressie; Kroki do stworzenia mapy witryny XML w WordPressie;

Objaśnienie

Tworzenie niestandardowej mapy XML w WordPressie może pomóc wyszukiwarkom lepiej zrozumieć strukturę Twojej witryny. Oto prosty sposób, aby to zrobić bez użycia wtyczki.

Reguła przepisywania: Ten kod ustawia specjalny adres URL dla Twojej mapy. Gdy ktoś odwiedza twojastrona.com/custom-sitemap.xml, WordPress wie, aby wyświetlić mapę.

Zmienne zapytania: Dodajemy niestandardową zmienną zapytania o nazwie custom_sitemap. To pomaga WordPressowi zidentyfikować, kiedy wygenerować mapę.

Generowanie mapy: Gdy dostępny jest niestandardowy adres URL mapy, ta część kodu tworzy plik XML. Zawiera on wszystkie opublikowane posty oraz niektóre niestandardowe adresy URL, które chcesz uwzględnić. Każdy wpis zawiera szczegóły, takie jak data ostatniej modyfikacji, jak często się zmienia oraz jego znaczenie.

  • Posty: Wszystkie opublikowane posty są uwzględnione z ich linkami i datami ostatniej modyfikacji.
  • Niemożliwe adresy URL: Możesz dodać konkretne strony, które chcesz umieścić w mapie, takie jak specjalne strony docelowe.

Opróżnienie reguł przepisywania: To zapewnia, że WordPress rozpoznaje nową strukturę adresów URL za każdym razem, gdy zmieniasz motyw.

Używając tego kodu, możesz ręcznie stworzyć mapę, która odpowiada Twoim potrzebom, bez polegania na wtyczkach. Pamiętaj tylko, aby aktualizować niestandardowe adresy URL w razie potrzeby!

Kod

<?php
// Hook into the 'init' action to register the sitemap rewrite rule
add_action('init', 'wp_dudecom_add_sitemap_rewrite_rule');

function wp_dudecom_add_sitemap_rewrite_rule() {
    add_rewrite_rule('^custom-sitemap\.xml$', 'index.php?custom_sitemap=1', 'top');
}

// Hook into 'query_vars' to add custom query variable
add_filter('query_vars', 'wp_dudecom_add_query_vars');

function wp_dudecom_add_query_vars($vars) {
    $vars[] = 'custom_sitemap';
    return $vars;
}

// Hook into 'template_redirect' to generate the sitemap
add_action('template_redirect', 'wp_dudecom_generate_custom_sitemap');

function wp_dudecom_generate_custom_sitemap() {
    if (get_query_var('custom_sitemap')) {
        header('Content-Type: application/xml; charset=utf-8');
        
        $posts = get_posts(array(
            'post_type' => 'post',
            'post_status' => 'publish',
            'numberposts' => -1
        ));
        
        $sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
        $sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
        
        foreach ($posts as $post) {
            $sitemap .= '<url>';
            $sitemap .= '<loc>' . esc_url(get_permalink($post->ID)) . '</loc>';
            $sitemap .= '<lastmod>' . esc_html(get_the_modified_date('c', $post->ID)) . '</lastmod>';
            $sitemap .= '<changefreq>weekly</changefreq>';
            $sitemap .= '<priority>0.8</priority>';
            $sitemap .= '</url>';
        }
        
        // Add custom URLs
        $custom_urls = array(
            home_url('/custom-page-1/'),
            home_url('/custom-page-2/')
        );
        
        foreach ($custom_urls as $url) {
            $sitemap .= '<url>';
            $sitemap .= '<loc>' . esc_url($url) . '</loc>';
            $sitemap .= '<changefreq>monthly</changefreq>';
            $sitemap .= '<priority>0.5</priority>';
            $sitemap .= '</url>';
        }
        
        $sitemap .= '</urlset>';
        
        echo $sitemap;
        exit;
    }
}

// Hook into 'after_switch_theme' to flush rewrite rules
add_action('after_switch_theme', 'wp_dudecom_flush_rewrite_rules');

function wp_dudecom_flush_rewrite_rules() {
    flush_rewrite_rules();
}
?>

Instrukcja

Aby wdrożyć niestandardową mapę witryny XML w WordPressie, korzystając z podanego kodu, wykonaj następujące kroki:

Lokalizacja pliku: Dodaj kod do pliku functions.php swojego motywu lub stwórz plik niestandardowej wtyczki.

Wymagania wstępne: Upewnij się, że masz dostęp do plików motywu WordPress lub możliwość stworzenia niestandardowej wtyczki.

Kroki wdrożenia:

  1. Dostęp do plików WordPress:
    • Zaloguj się do panelu administracyjnego WordPress.
    • Przejdź do Wygląd > Edytor motywu, jeśli edytujesz plik functions.php, lub użyj klienta FTP, aby uzyskać dostęp do plików WordPress.
  2. Dodaj kod:
    • Skopiuj podany fragment kodu.
    • Wklej go do pliku functions.php aktywnego motywu lub stwórz nowy plik wtyczki i wklej kod tam.
  3. Zapisz zmiany:
    • Jeśli edytujesz plik functions.php, kliknij Aktualizuj plik, aby zapisać zmiany.
    • Jeśli używasz niestandardowej wtyczki, upewnij się, że wtyczka jest aktywowana w sekcji Wtyczki w panelu WordPress.
  4. Wyczyść zasady przepisywania:
    • Aby upewnić się, że nowa struktura URL jest rozpoznawana, przejdź do Ustawienia > Permalinki w panelu WordPress i kliknij Zapisz zmiany.
  5. Zweryfikuj mapę witryny:
    • Odwiedź twojastrona.com/custom-sitemap.xml, aby sprawdzić, czy mapa witryny została poprawnie wygenerowana.

Postępując zgodnie z tymi krokami, możesz stworzyć niestandardową mapę witryny XML dostosowaną do potrzeb swojej strony. Jeśli potrzebujesz dalszej pomocy lub chcesz zbadać bardziej zaawansowane funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.