Jetpack site haritasına (sitemap) özel yazı türlerini (custom post type) eklemek

WordPress için Jetpack eklentisinin Sitemap modülü varsayılan olarak özel yazı türlerini oluşturduğu sitemap.xml site haritasında içermiyor.

Bu fonsiyonu WordPress websitenize eklemek için bazı yöntemleri göstermek istiyorum.

Yöntem 1 – Var olan bir diziye eklemek

Temanın functions.php dosyasında var olan özel bir yazı türü kullanan site için, desteklenen özellikler kısmına jetpack_sitemap_post_types elemeniz gerekmektedir.

[raw]
Özel yazı tipi ekleme fonksiyonu
1 //* Create portfolio custom post type
2 add_action( ‘init’, ‘poptekno_post_type’ );
3 function poptekno_post_type() {<div class="xdg"><!-- Content 4 tr -->
4 <ins class="adsbygoogle"
5 data-ad-client="ca-pub-4822924873424232"
6 data-ad-slot="4129595975"
7 data-ad-format="auto"
8 data-full-width-responsive="true"
9 style="display:block; width:100%;"></ins>
10 <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
11 </div>
12 register_post_type( &#8216;portfolio&#8217;,
13 array(
14 &#8216;labels&#8217; => array(
15 &#8216;name&#8217; => __( &#8216;Yazı türü&#8217;, &#8216;PopTekno.com&#8217; ),
16 &#8216;singular_name&#8217; => __( &#8216;Yazı türü&#8217;, &#8216;PopTekno.com&#8217; ),
17 ),
18 &#8216;has_archive&#8217; => true,
19 &#8216;hierarchical&#8217; => true,
20 &#8216;menu_icon&#8217; => get_stylesheet_directory_uri() . &#8216;/lib/icons/portfolio.png&#8217;,
21 &#8216;public&#8217; => true,
22 &#8216;rewrite&#8217; => array( &#8216;slug&#8217; => &#8216;ozel-yazi-turu&#8217;, &#8216;with_front&#8217; => false ),
23 &#8216;supports&#8217; => array( &#8216;title&#8217;, &#8216;editor&#8217;, &#8216;author&#8217;, &#8216;thumbnail&#8217;, &#8216;excerpt&#8217;, &#8216;trackbacks&#8217;, &#8216;custom-fields&#8217;, &#8216;revisions&#8217;, &#8216;page-attributes&#8217;, &#8216;poptekno-seo&#8217; ),
24 &#8216;taxonomies&#8217; => array( &#8216;portfolio-type&#8217; ),<div class="xdg"><!-- Content 5 tr -->
25 <ins class="adsbygoogle"
26 data-ad-client="ca-pub-4822924873424232"
27 data-ad-slot="4646253688"
28 data-ad-format="auto"
29 data-full-width-responsive="true"
30 style="display:block; width:100%;"></ins>
31 <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
32 </div>
33 )
34 );<div class="xdg"><!-- Content 6 tr -->
35 <ins class="adsbygoogle"
36 data-ad-client="ca-pub-4822924873424232"
37 data-ad-slot="7569868357"
38 data-ad-format="auto"
39 data-full-width-responsive="true"
40 style="display:block; width:100%;"></ins>
41 <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>
42 </div>
43 }
[/raw]

Burada satır 16’da göründüğü gibi basitçe ‘jetpack_sitemap_post_types’ ekleniyor:

[raw]
1 &#8216;supports&#8217; => array( &#8216;title&#8217;, &#8216;editor&#8217;, &#8216;author&#8217;, &#8216;thumbnail&#8217;, &#8216;excerpt&#8217;, &#8216;trackbacks&#8217;, &#8216;custom-fields&#8217;, &#8216;revisions&#8217;, &#8216;page-attributes&#8217;, &#8216;poptekno-seo&#8217;, &#8216;jetpack_sitemap_post_types&#8217; ),
[/raw]

Yöntem 2 – Functions.php içine filtre eklemek

Bu yöntem öncekinden biraz daha farklıdır ve WordPress forumlarından öğrendiğimiz bir yöntemdir. Esasen daha çok bu yöntemi tavsiye ederiz. Alttaki kodu basitçe kendi temanızın functions.php dosyasına yapıştırın ve sizin_yazi_turunuz kısmını kendi yazı türünüzle değiştirin.

[raw]
Yazı türü için site haritası fonksiyonu
1 function poptekno_sitemaps( $post_types ) {
2 $post_types[] = &#8216;sizin_yazi_turunuz&#8217;;
3 return $post_types;
4 }
5 add_filter( &#8216;jetpack_sitemap_post_types&#8217;, &#8216;poptekno_sitemaps&#8217; );
[/raw]

Yöntem 3 – Jetpack Eklentisini düzenlemek

Eklenti üzerine güncelleme alacağı için bu yöntem pek te iyi bir yöntem değildir. /wp-content/plugins/jetpack/modules/sitemaps/sitemap.php dosyasına giderek 268.satıra ekstra yazı türleri ekleyebilirsiniz, bu da alttaki gibi görünecektir:

[raw]
1 $post_types = apply_filters( &#8216;jetpack_sitemap_post_types&#8217;, array( &#8216;post&#8217;, &#8216;page&#8217;, &#8216;ozel_yazi_turunuz&#8217; ) );
[/raw]

Son Adım

Son olarak bir yazı ya da sayfa güncellemeniz ya da yeni bir yazı ya da sayfa yayınlamanız gerekmektedir. Böylece site haritanız güncellenecektir.