Bazı WordPress kategorilerini sayfalandırmanın dışında tutun. Eklentiler olmadan WordPress ana sayfasından, rss yayınından, kategorilerden ve arşivlerden gönderiler ve kategoriler nasıl hariç tutulur?

Ana sayfada, kategori sayfalarında, arşivlerde ve arama sonuçlarında genellikle sayfa gezinmesine (sayfalandırma olarak da bilinir) ihtiyaç duyulur. WordPress'teki bloglar da istisna değildir; bilgi çıktısının sonuçları birkaç sayfaya bölündüğünde sayfalandırmayı da kullanırlar.

Daha önce bu özelliği uygulamak için dosyada bulunan üçüncü taraf eklentiler veya özel işlevler kullanılıyordu. işlevler.php. Bununla birlikte, WordPress 4.1 sürümünün piyasaya sürülmesiyle birlikte, sayfalandırma özelliği CMS'nin çekirdeğine yerleştirildi ve artık WordPress'in dahili işlevleri sayfada gezinmeyi uygulamak için yeterli ve üçüncü taraf kodu veya eklentileri eklemenize gerek yok.

Daha önce WordPress'in TITLE etiketiyle ilgili benzer bir gelişme hakkında yazmıştım - https://aboutwordpress.ru/post/wordpress-title/.

Sayfalandırma nedir

Sayfalandırma, bilginin sayfalara bölünmesidir. Bu kavram aynı zamanda sayfaların, sayfanın altında, üstünde veya yanında yer alan numaralarla gösterilen sıralı numaralandırılması anlamına da gelir.

WP-PageNavi - WordPress sayfalandırma eklentisi

WordPress için en popüler sayfalandırma eklentisi WP-PageNavi'dir. Dürüst olmak gerekirse, sayfalandırma göreviyle o kadar iyi başa çıkıyor ki, diğer eklentileri tartışmanın ve karşılaştırmanın bir anlamı yok.

WordPress sayfalandırma - WP-PageNavi eklentisi

Eklenti olmadan WordPress sayfalandırma

Eklentiler olmadan bir web sitesinde sayfalandırma yapmak için WordPress'in yerleşik the_posts_pagination() işlevini kullanacağız. İhtiyacımız olan yere aşağıdaki kodu eklememiz gerekiyor (genellikle bunlar dosyalardır) index.php, kategori.php ve benzerleri):

the_posts_pagination() işlevinin sonucu yaklaşık olarak aşağıdaki HTML kodu olacaktır:

H2 Başlığını Sayfalandırmadan Kaldırma

H2 başlığı “Gezinme Sonrası” hemen gözünüze çarpıyor. Çoğu durumda sitede yeri yoktur. Bundan kurtulmak için dosyaya aşağıdaki kodu ekleyin işlevler.php:

/* H2'yi sayfalandırmadan çıkarın */ add_filter("navigation_markup_template", "my_navigation_template", 10, 2); function my_navigation_template($şablon, $sınıf)( return "

"; }

Sayfalandırma sayfalarını ayarlama

Varsayılan olarak, the_posts_pagination() ilk ve son sayfayı ve geçerli sayfanın etrafındaki bir sayfayı görüntüler. Diğerlerinin tümü bir üç noktayla değiştirilir. Bu davranış bağımsız değişkenler kullanılarak değiştirilebilir:

  • show_all - tüm sayfaları göster
  • end_size - listenin başındaki ve sonundaki sayfa sayısı
  • mid_size - geçerli sayfanın solundaki ve sağındaki sayfa sayısı

Örneğin şöyle:

2, "son_boyut" => 2,)); ?>

CSS Sayfalandırma Stilleri

Sayfa numaraları (dolgu: %1 %2; kutu gölgesi: 0 0 10px #ccc; kenar boşluğu: %0 1 0 0; arka plan: #fff; kenarlık yarıçapı: 3px; )

Bu stillere sahip sayfalandırma sayfalarına bağlantılar şöyle görünecektir:

…nasıl yapılır? ...genel olarak zor değil. Ve eğer görev tam olarak şu veya bu kategorinin görüntülenmesini yasaklamaksa, o zaman bu hevesi birkaç dakika içinde çözeceğiz.

Ancak bir sorun var:

...bir kategorinin bir widget'ta görüntülenmesini yasaklama sorununu çözerken, bununla kasvetli bir bağlantı ortaya çıkıyor, yani şu soru ortaya çıkıyor: kategorilerin gösterimi kaotik değil, gerekli ve mantıksal sırayla nasıl yapılandırılır!?


...bunun hakkında çok düşünmelisin. ...ve ihtiyaçlarınızı açıkça tanımlayın. Ama önce ilk şeyler: Sonunda size kategorileri filtrelemek için mükemmel ve ustaca bir çözüm sunacağım...

kodun kolaylığını kullanmak Gerekli/gereksiz blog içeriğine yönelik bu tür yasaklama/izinleri uygularken, başka bir “sürpriz”le karşılaşmamak için sitenizin gelişimine yönelik bazı perspektifleri akılda tutmakta fayda var. olmak ya da olmamak gelecekte dosyaları düzenleyerek veya eklentileri değiştirerek blogu yeniden oluşturmak.

Sonuçta, her zaman bir alternatif vardır: Bir eklenti kullanmak (sayıları “...sevişmek gibi...” her zaman iyi değildir) veya kodu işlevler dosyasına yazmak - f unctions.php (fena değil, ancak sorunu açık bir şekilde çözmez)!?

Kararını ver!..

Blog yazmaya düşüncesizce başlamanın olası teknik yetersizliğini gösterdim ve şimdi de mantıklı bir çözüm için olası yolları sunuyorum:

Herhangi bir yeni sitenin göbeğinde varsayılan olarak bulunan belirli bir WordPress widget kategorisini gizlemeniz gerekiyorsa, o zaman bu basittir.

Function.php hakkında konuştuğumuz dosyayı açıp son kod çözme aşamasında bir yerde etiketten önce?> bu tire kodlu filtreyi yazıyoruz.

// RUBRIC HARİÇ KODU start function ext_widget_categories($args)( $exclude = "39"; $args["exclude"] = $exclude; return $args; ) add_filter("widget_categories_args","ext_widget_categories"); //RUBRİKLER İÇİN HARİÇ KOD sonu

Sitede gereksiz bir çarşı gibi filtrelenen kategorinin id'sini 39 sayısı belirtmektedir.

Birkaç tanesini virgülle ayırarak belirtebilirsiniz.

...işte bu kadar, sorulardan biri kapandı.

bir widget'ta bir alt kategorinin görüntüsünün nasıl gizleneceği

Çözüm, belirli alt kategorilerin (alt blog gönderileri) adlarının görüntülenmesini yasaklayan/izin veren, hemen aşağıdaki kod sürümündedir.

// belirtilen ID=7 ile bir kategorinin tek alt kategorileri için çıktı kodu start function ext_widget_categories($args)( $args["child_of"] = 7; return $args; ) add_filter("widget_categories_args","ext_widget_categories") ; //belirtilen ID=7 sonuna sahip kategorinin tek alt kategorileri için kod çıktısı

Bu kodların argümanları birleştirilebilir.

Hadi bakalım!! Tüm kategorilerinizin “Kategoriler” widget'ındaki GÖRÜNTÜLEME kontrolü üzerinde tam kontrol elde ettik.

...ama - yine de diyoruz!! Çoğu zaman, bir süre sonra, bir web sitesi sayfasını açtıktan sonra, acı bir şekilde bir kusur daha keşfedilir: kenar çubuğu widget'ındaki başlıklar mantıksal bir sıraya (gelişigüzel) yerleştirilmemiştir - profesyonellik geliştirmenin titizliği, bilirsiniz.

Bu durumda ayrıca birkaç güzel seçenek arasından seçim yapmanız gerekir:

Hadi WordPress eklenti deposuna gidelim - yol: konsol/eklentiler/eklenti ekle/...kur/etkinleştir... ne kadar mucize Kategori Sırası ve Taksonomi Terim Sırası.

Teklifin eklentiye teknik çevirisi:
Sürükle ve bırak şeklinde sıralanabilir Javascript yeteneklerini kullanarak Kategorileri ve tüm sınıflandırma terimlerini (özel hiyerarşik olarak) ve alt terimleri sıralayın.
Eklentinin kafa karıştırıcı hiçbir ayarı yok: tek yapmanız gereken konsolda soldaki "kayıtlar"ın üzerine gelip Taksonomi Sırası öğesine bakmak...

Her şey paradoksal olarak basittir: panoları sürükleyerek mevcut başlıkların adlarını görüntülemek için en uygun sırayı yapılandırın.

"Eklenti" yönteminin dezavantajları şunları içerir: belirli kategorilerin görüntülenmesini yasaklayamazsınız...

Bu nedenle yukarıda önerilen kodu veya aşağıda gösterilen eklentiyi kullanmanız gerekecektir...

NS Kategori Widget eklentisini kullanarak bazı kategorilerin görüntülenmesini yasaklıyoruz

...haydi tekrar WordPress deposuna girelim ve NS Kategori Widget eklentisini indirelim - bu "atlama" bize mevcut "Kategoriler" widget'ına ek olarak başka ama daha şık bir ayar verecektir: yani - normal bir widget silinmeli veya "etkin değil" bölümünde gizlenir ve içeriği yönetmek için bu gelişmiş seçeneği yapılandırın: gösterme/engelleme.

Ayarlarına gidin ve kendi kurallarınızı belirleyin: kategori kimliğine, hiyerarşilerin önemine ve benzer ayarlamalara göre... Çok basit!

Eklenti, en az bir düzine görüntüleyebileceğiniz standart "kategorinin" aksine, ayarların bireysel olduğu, ancak "üst" kodun ayarları olan gerekli sayfa düzeylerinde birçok widget birimini kullanmanıza olanak tanır. herkes için geçerli olacak: bu, standart bir "kategori" widget'ını ve makalenin en başında açıklanan kodu bağlama yeteneğinin eksi... Ve kategori widget'ları için birkaç seçenek kullanmayı planlıyorsanız, o zaman yine de yapmalısınız NS Kategori Widget eklentisini indirin.

ANCAK! gelişmiş olanda kategorileri sıralamak için daha basit ve daha incelikli bir düzen yoktur - bu onun dezavantajıdır. Ne kadar kafa karışıklığı!

Karar senin...

...makalede kendiniz için yararlı bir şeyler gördüyseniz, harika!

Merhaba beyler!

Bugün size bir WordPress sitesinin ana sayfasındaki gönderileri nasıl hariç tutacağınızı gösterecek teknik bir makale olacak.

Ayrıca yalnızca belirli girişleri değil, kategorilerin tamamını nasıl hariç tutacağınızı da öğreneceksiniz. Size eklentili ve eklentisiz birçok seçenek göstereceğim. Genel olarak her şey her zamanki gibidir.

Hangi durumlarda kullanılmalı?

Bazı gönderileri, yani duyurularını ana sayfadan hariç tutma ihtiyacı çoğunlukla kişisel bloglarda mevcuttur; normal bir izleyici kitlesi için büyük, yüksek kaliteli makalelere ek olarak, kaynağı SEO için optimize edilmiş basit makalelerle doldurmaya da değer. .

Tüm bunları zaten bildikleri için bu tür makalelerin blog üyelerine yararlı olması pek olası değildir. Ana sayfayı gereksiz duyurularla doldurmamak için bunları göstermemek daha iyi olur. Aynı zamanda arama motorlarından kaynağa yeni kitleler çekmek için siteye eklenmeleri gerekir. Ayrıca görüntülenmeleri gerekiyor, ancak bu, bölümlerin ve arşivlerin sayfalarında yapılmalıdır, böylece yeni gelenler sitenin bölümleri arasında gezinmeyi kullanarak bunları bulabilirler.

Örneğin, bu makaleyi blogumun ana sayfasında, sayfalandırma sayfalarının hiçbirinde (sayfa gezinme) bulamazsınız. Aynı zamanda yazının duyurusu “Faydalı” bölümünde ve “Tüm Yazılar” site haritası sayfasında görülebilmektedir.

Eklenti olmadan

Eklentisiz yöntem her zaman tercih edilir, ancak bu durumda bir öncelik olmayacaktır, çünkü bazı makaleleri hariç tutmak için her seferinde yüklediğiniz şablon dosyasında değişiklik yapmanız gerekecektir. Ancak yine de böyle bir çözümü uygulamak için birkaç farklı seçenek göstereceğim çünkü bunun size uygun olması oldukça olası.

Aşağıda, Function.php şablon dosyasına yerleştirilmesi gereken çeşitli kod parçalarını vereceğim.

Belirli kayıtları kimliğe göre hariç tutma

Bu seçenekte, çoğu kişinin çeşitli eklentilerin yardımıyla yaptığı gibi, kategorilerin tamamını ana sayfadaki görünürlükten gizlemeye gerek yoktur. Tek yapmanız gereken gerekli kayıtların ID'lerini koda eklemek.

function include_post($query) ( if ($query->is_home) ($query->

if ($query -> is_home )

( $sorgu -> // posta kimliği

$sorgu döndür; )

3. satırda yer alan 1 ve 2 numaralı rakamlar ana sayfada yer almayacak olan kimlik kayıtlarıdır. Virgülle ayırarak yazmanız gerekiyor.

Editör aracılığıyla görüntülerken tarayıcının adres çubuğunda gönderinin, sayfanın ve kategorinin kimliğini bulacaksınız.

Bir sonraki seçenek, girişleri RSS beslemesinden hariç tutmanıza olanak tanır.

RSS beslemesinden hariç tutulma

Bu kod, Feedburner'ı kullanarak abonelik ve duyuru hizmetini kullanıyorsanız duyuruları haber akışından hariç tutmanıza ve e-posta yoluyla göndermemenize olanak tanır.

function include_post($query) ( if ($query->is_feed) ($query->set("post__not_in", array(1, 2));) // post (post) id return $query; ) add_filter(" pre_get_posts","exclude_post");

function include_post ($sorgu) (

if ($query -> is_feed )

( $query -> set ( "post__not_in" , array ( 1 , 2 ) ) ; ) // posta kimliği

$sorgu döndür; )

add_filter ("pre_get_posts", "exclude_post");

Bu durumda ve diğer tüm durumlarda kayıt eklemek aynı şekilde gerçekleşir.

Kategorilerden ve arşivlerden hariç tutma

Gönderileri kategori sayfalarından hariç tutmak için aşağıdaki kodu kullanmalısınız.

function include_post($query) ( if ($query->is_category) ($query->set("post__not_in", array(1, 2));) // post (post) id return $query; ) add_filter(" pre_get_posts","exclude_post");

function include_post ($sorgu) (

if ($query -> is_category )

( $query -> set ( "post__not_in" , array ( 1 , 2 ) ) ; ) // posta kimliği

$sorgu döndür; )

add_filter ("pre_get_posts", "exclude_post");

Bu kod, arşivlerden bir istisna uygulamak için değiştirilebilir. 2. binada is_category fonksiyonunu is_archive ile değiştirmek gerekiyor.

Arama sayfasından hariç tutulma

Bu seçenek, site aramasını kullanan ziyaretçilere bazı kayıtların gösterilmemesi gerektiğinde de gerekli olabilir. Örneğin bunlar sitenin konusuyla ilgili içerik barındırmayan çeşitli haberler olabilir.

function include_post($query) ( if ($query->is_search) ($query->set("post__not_in", array(1, 2));) // post id return $query; ) add_filter(" pre_get_posts", "exclude_post");

function include_post ($sorgu) (

if ($query -> is_search )

( $query -> set ( "post__not_in" , array ( 1 , 2 ) ) ; ) // posta kimliği

$sorgu döndür; )

add_filter ("pre_get_posts", "exclude_post");

Birkaç seçeneğin birleştirilmesi

Yukarıdaki seçeneklerin tümünü birleştirebilir ve kayıtları tüm sayfa türlerinden aynı anda veya seçici olarak gerekli olanlardan hariç tutabilirsiniz.

Tüm kodlara iyice bakarsanız, 2. satırda, sayfa türleri parametresinin, bunlardaki duyuru duyurularının görüntülenmesini devre dışı bırakacak şekilde ayarlandığı bir koşulu görebilirsiniz:

  • is_search
  • is_category
  • is_feed
  • ev

Tüm seçenekleri birleştirebilir ve her yerdeki veya bazı sayfalardaki gönderileri hariç tutabilirsiniz. Örneğin, kategorilerden ve ana öğelerden hariç tutmak için, aşağıdaki kodu function.php dosyasına yerleştirmelisiniz.

function include_post($query) ( if ($query->is_category || ($query->is_home)) ($query->set("post__not_in", array(1, 2));) // post id ) return $query; ) add_filter("pre_get_posts", "exclude_post");

function include_post ($sorgu) (

if ($query -> is_category || ($query -> is_home ) )

( $query -> set ( "post__not_in" , array ( 1 , 2 ) ) ; ) // posta kimliği

$sorgu döndür; )

add_filter ("pre_get_posts", "exclude_post");

(if) koşulunu içeren 2. satır, kategoriler (is_category) veya home (is_home) için parametreler içerir.

Sonraki her parametrenin bir öncekinin içine 2 dikey çubukla yazıldığını ve kendi parantezleri içinde bulunduğunu unutmayın. Yani, önceki koda bakarsanız, ana sayfanın ikinci koşulunun kendi parantezleri içine alındığını ve kategoriler için ilk koşulu saran genel parantezlerin içinde olduğunu göreceksiniz.

Örneğin arşiv sayfaları için bir tür üçüncü koşul eklemeye değerse, bunu ana koşulun (is_home) koşuluyla birlikte parantez içine eklemeye ve 2 dikey çubukla yazmaya değer. Pratikte şöyle görünüyor.

function include_post($query) ( if ($query->is_category || ($query->is_home || ($query->is_archive))) ($query->set("post__not_in", array(1, 2) );) // gönderi kimliği $query'yi döndürür; ) add_filter("pre_get_posts", "exclude_post");

function include_post ($sorgu) (

if ($query -> is_category || ($query -> is_home || ($query -> is_archive )) ) )

( $query -> set ( "post__not_in" , array ( 1 , 2 ) ) ; ) // posta kimliği

$sorgu döndür; )

add_filter ("pre_get_posts", "exclude_post");

Aynı prensibi kullanarak, hariç tutulacak diğer sayfa türlerini ekleyin.

Kayıtları hariç tutmak için bir sonraki seçenek, başlıkların (kategorilerin) tamamını hariç tutmaktır.

Kategorilerin tamamını hariç tutma

Bu, tembel insanlar için çok kullanışlıdır; basitçe bir tür kategori oluşturup belirli sayfa türlerinde görüntülenmesi gerekmeyen tüm gönderileri oraya ekleyebilirsiniz.

Kod yapısı hemen hemen aynı. Yalnızca bir gönderinin veya kategorinin hariç tutulmasını belirten parametreyi değiştirir. Daha önce tartışılan durumlarda son satır exclusion_post olarak ayarlandı. Yeni kodda, exclusi_cat ile değiştirilmelidir.

function include_cat($query) ( if ($query->is_home) ($query->set("cat","-1, -2, -3");) // kategori kimliği return $query; ) add_filter( "pre_get_posts", "exclude_cat");

function include_cat ($sorgu) (

if ($query -> is_home )

( $sorgu -> set ("kedi" , "-1, -2, -3" ) ; ) // kategori kimliği

$sorgu döndür; )

add_filter ("pre_get_posts", "exclude_cat");

Görüldüğü üzere son satırda değişiklikler yapılmış, 3. satırda ise kategori ID'sini okuyan parametre değiştirilmiş. Bu durumda kimlik, kısa çizgiyle ve aynı zamanda virgülle yazılır.

Sayfa türleri için koşullar oluşturma ilkesi, daha önce tartışılan, belirli gönderileri hariç tutma örneğini gösterdiğim seçeneklere benzer. Kategoriler, arama, arşivler veya RSS yayınları için gerekli parametreleri ekleyerek 2. satırı değiştirmeye değer.

Bu yüzden eklentisiz yöntemlere baktık. Ayrıca etiketlerle ilgili girişleri hariç tutma seçeneği de mevcut ancak artık etiketler kaynakların %99'u için artık pek alakalı değil. Bu tür bilgilere ihtiyacınız varsa, lütfen yorumlarda yazın. Herşeyi hemen ekleyeceğim.

Eklentiler

Eklentiler bu konuda daha esnek bir çözümdür, çünkü belirli girişleri hariç tutarken şablon dosyasını her seferinde düzenlemeye gerek yoktur. İstediğiniz gönderileri yayınlarken veya sonrasında düzenleyiciye bir onay kutusu koymaya değer.

Gösterim gerektirmeyen makaleler için oluşturulan özel bir kategoriyi hariç tutmaya değerse yukarıda verilen kodlardan birini kullanmak daha iyidir.

Basitçe eklentiyi hariç tut

Eklentiyi aramayı kullanarak WordPress konsolundan veya adresinden indirebilirsiniz. resmi WordPress web sitesi.

Etkinleştirmeden sonra zaten çalışacaktır ve yapılandırmanıza gerek yoktur. Ancak yine de işlevleriyle çalışmayı daha keyifli hale getirmek için bazı değişiklikler yapmanızı öneririm.

Kurulum ve aktivasyondan sonra hemen ayarlarına gidiyoruz.

Başlangıçta, eklenti ayarlarında her şey, onay kutusu etkinleştirildiğinde (aşağıda bakacağız), gerekli sayfalar (yazılar, kategoriler, sayfalar) "görüntülenmeye izin verildi" olarak işaretlenecek şekilde ayarlanmıştır. Bu nedenle, her sayfa türü için, her şeyin görüntülenmesi için tüm onay kutularını işaretlemeniz gerekecektir.

Bir onay kutusunu etkinleştirerek (örneğin ana sayfa için), bir makaleyi veya başka bir şeyi görüntülenmesi yasak olarak işaretleyeceği zaman bu seçeneği ayarlamak daha mantıklı olacaktır.

Ayarlarda, farklı sayfa türleri için ayarları yapılandırmak üzere tasarlanmış 3 sekme vardır:

  • Taksonomiler (taksonomiler) - WordPress yönetici panelinin bölümlerinde eklentinin işleyişine ilişkin ayarlar: kategoriler ve etiketler;
  • Gönderi türleri - gönderi türleri için: makaleler ve sayfalar;
  • Kullanıcılar - kullanıcılar için ayarlar.

Şimdi ilk sekmenin (taksonomi) ayarlarının ekran görüntüsünü verip, ayarlanması gereken parametreleri anlatacağım.

  • İlk ayarlar bloğunda "Aktif", "Etkin" onay kutusunu ayarlamanız gerekir; böylece eklenti, kategorilerde veya diğer sayfa türlerinde görüntülemeyi devre dışı bırakmak için gerekli onay kutularını ekler;
  • İkinci blokta “Hariç Tut” seçeneğinin karşısındaki tüm parametreleri ayarlıyoruz. Bu, her sayfa türünün düzenleyicisinde onay kutusunun etkinleştirilmesi durumunda, bunun görüntüden gizleneceği ve yeni makalelerin varsayılan olarak görüntülenmeye açılacağı anlamına gelir. "Yalnızca dahil et" parametresini ayarlarsanız, onay kutusunu işaretlediğinizde, girişler görüntülenmeye açılacak ve yeni makaleler varsayılan olarak gizlenecektir. İkinci seçenek "Yalnızca dahil et" seçilirse, eklentiyi yükledikten sonra tüm girişler gizlenecek ve "Hariç Tut" seçeneğini ayarlamanız gerekecektir;
  • "Göster/Gizle" bloğunda, "Göster" parametresini, görüntülemeyi devre dışı bırakma veya etkinleştirme yeteneği için her sayfa türünde gerekli onay kutularının görüntüleneceği şekilde ayarlayın.

Simply Exclude eklentisi ayarlarının kalan 2 sekmesine de aynı parametreler girilmelidir.

Örneğin, burada "Yazı türleri" sekmesinin ekran görüntüsü bulunmaktadır.

Elbette bazı işlevlerin çalışmasını devre dışı bırakabilirsiniz; örneğin, bir kategorinin tamamının tüm gönderilerini hariç tutmayacaksak, ilk sekmede kategoriler için eklentiyi devre dışı bırakabilirsiniz.

Şimdi eklentinin çalışması hakkında. Gerekli parametreleri ayarladığınızda, her yazı türü için düzenleyiciye gidebilir ve görüntülenmesini engellemek istediğiniz sayfaların yanına onay kutuları koyabilirsiniz.

Örneğin, gönderilerin ayarlarını yapmak için gerekli makalenin düzenleyicisine veya tüm makaleler öğesine gidebilirsiniz. Hem orada hem de gerekli onay kutuları olacaktır. Editörde, sağ sütunda, gönderileri ve sayfaları gizlemek için 4 onay kutusu içeren bir "Basitçe Hariç Tut" bloğu bulunacaktır:

  • Arşivler - kategoriler ve arşivler;
  • Beslemeler - RSS beslemeleri;
  • Ön/Ana Sayfa - ana;
  • Aramalar - arama.

Gerekli onay kutusunu işaretleyerek gönderiyi belirli bir sayfa türünden gizleyebilirsiniz.

WordPress yönetici panelinde "Tüm gönderiler", her malzemenin karşısında "Gösteriyi Basitçe Hariç Tut" adlı yeni bir sütunda da bu 4 onay kutusu bulunacaktır. Aynı şey rubrikler için de geçerli. Tüm onay kutularını içeren yeni bir sütun eklenecektir.


Bu eklenti için bu kadar. Bunu kurarak, şablon dosyalarına müdahale etmeden belirli gönderilerin veya tüm kategorilerin görüntüleme parametrelerini çok hızlı ve esnek bir şekilde değiştirebilirsiniz.

Kategorileri Hariç Tut eklentisi

Eklenti yalnızca bir kategorinin tamamını ana sayfadan ve RSS beslemesinden gizlemek için tasarlanmıştır. Bu seçenek çok fazla esneklik gerektirmediğinden (bir kez bir kategori oluşturdum ve oraya makaleler ekledim), kod kullanarak bir kategorinin tamamını hariç tutmayı uygulamanızı öneririm (2. maddeye bakın).

Aşağıdaki butonu kullanarak eklentiyi indirebilirsiniz.

Yükledikten sonra ayarlara (Ayarlar - Kategoriyi Hariç Tut) gidin ve ana sayfadan hariç tutmak için gerekli kategoriyi seçin.

Bir kategorideki tüm girişlerin hariç tutulması yaygın bir seçenektir. Ancak sitenin arama trafiğini çekmek için çok sayıda makale yayınlaması gerektiğinden ve bunların hepsi aynı konunun farklı konularıyla ilgili olacağından bunda bir dezavantaj görüyorum.

Ancak çeşitli malzemeleri tek bir kategoriye sokmak pek iyi değil.

Bu seçenek aynı zamanda bir web sitesindeki bağlantıları aktif olarak satarken de sıklıkla kullanılır. Sahibi bir bölüm oluşturur ve içinde satış bağlantıları bulunan tüm makaleleri yayınlar. Ve bu da pek iyi değil, çünkü artık web yöneticileri sitenin ana bölümlerinden birine, en azından biraz tıklanabilir olması ve tanıtım sırasında etkili olması için bir bağlantı yerleştirmeyi gerektiriyor.

İşte bu kadar arkadaşlar, bu yazı için doğru yere geldiyseniz sizin için yararlı olacak bu ayrıntılı kılavuzu bu notla sonlandırıyorum. Umarım senin için herşey yolunda gider.

Size harika bir ruh hali ve harika bir gün diliyorum. Görüşürüz.

Saygılarımla Konstantin Khmelev!

Bugün, eklentileri kullanmadan, kategorileri bir WordPress sitesinin ana sayfasından manuel olarak nasıl hariç tutabileceğinizle ilgili bir makale.

Blog sitenizin ana sayfasında belirli bir kategorideki gönderileri hariç tutmanın birkaç yolu vardır. Bana göre en kolay yollardan biri dosyaya küçük bir kod parçası eklemek. işlevler.php. Bu kod parçası bizi diğer tema dosyalarını değiştirme zorunluluğundan kurtaracak bir nevi filtre olacaktır. Bu yöntemi kullanarak, bir dosyadaki kayıtların çıktısını alma döngüsünü yeniden çalışarak zaman kaybetmenize gerek kalmaz index.php başından sonuna kadar query_posts.

Öyleyse bir örneğe bakalım:

1) Diyelim ki kimlik numarası 4 yani ID = 4 olan bir kategorideki girişleri silmemiz gerekiyor. Yani ID'si 4 olan kategorideki gönderileri ana sayfadan hariç tutmamız gerekiyor.

2) Görevlere karar verdik, hadi uygulamaya başlayalım - bunun için bunları dosyaya ekleyeceğiz işlevler.php aşağıdaki kod parçası:

Function RemoveFromHome($query) ( if ($query->is_home) ($query->

Değiştirilen dosyayı kaydediyoruz işlevler.php ve ana sayfada ID=4 kategorisinden başka giriş olmadığını görüyoruz.

WordPress mantığı açısından ana sayfa aynı zamanda sayfa gezintisi ile oluşturulan herhangi bir sayfadır. Bu nedenle, hariç tutulan kategori kimliği=4 olan gönderileri 2, 3 veya 4. sayfalarda vb. görmeyeceğiz.

Bu seçenek size uymuyorsa yukarıdaki kodu biraz şu şekilde değiştirebilirsiniz:

Function RemoveFromHome($query) ( if ($query->is_home && !(is_paged())) ($query->set("cat","-5");) return $query; ) add_filter("pre_get_posts" ,"Evden Kaldır");

Kaydediyoruz ve artık ana sayfa hariç her sayfada ID=4 olan kategorideki girişler normal şekilde görüntülenecek.

Kategori girişlerini arama sonuçlarından hariç tutma

Kategori girişlerini arama sonuçları sayfasından hariç tutmanız gerekiyorsa, yalnızca kategori girişlerini değiştirmeniz gerekir. ev Açık is_search.

Birkaç kategorideki girişleri hariç tutmak için, bu kategorilerin kimliklerini yukarıdaki kodlarda virgülle ayırarak listelemeniz gerekir. Diyelim ki ID'si 3,7,8,9 olan kategorileri hariç tutmanız gerekiyor. Daha sonra kodda aşağıdaki değişiklikler olacaktır:

Function RemoveFromFeed($query) ( if ($query->is_feed) ($query->set("cat","-3, -7, -8, -9");) return $query; ) add_filter(" pre_get_posts","removeFromFeed");

Kategori girişlerini RSS akışından hariç tutmak

Belirli bir kategorideki gönderileri RSS akışınızdan hariç tutmanız gerekirse ne yapmalısınız? Ve bunu çok basit bir şekilde yapabilirsiniz; aşağıdaki kodu kullanın:

Function RemoveFromFeed($query) ( if ($query->is_feed) ($query->set("cat","-4");) return $query; ) add_filter("pre_get_posts","removeFromFeed");

Değişiklikleri kaydediyoruz ve feed'de ihtiyacımız olmayan kategoriden başka gönderi olmadığını görüyoruz.

RSS beslemesinden ve ana sayfadan kategori girişlerini hariç tutma

Aniden belirli bir kategorideki gönderilerin ana sayfada ve akışta görüntülenmediğinden emin olmanız gerekirse, aşağıdaki kodu kullanmanız gerekir:

Function RemoveCat($query) ( if ($query->is_feed || ($query->is_home && !(is_paged()))) ($query->set("cat","-3,-7") ;) return $query; ) add_filter("pre_get_posts","removeCat");

Bu durumda ID'si 3 olan kategorilerdeki girişler ana sayfada ve RSS akışında gösterilmeyecek, diğer sayfalar açıldığında gösterilecektir.

Dosyadaki değişiklikler işlevler.php herhangi bir yere girilebilir, ancak başka bir işlevin koduna dokunmadan. En kolay yol, kodu dosyanın sonuna eklemektir.

Sayfalandırmanın sayfaların çoğaltılmasına neden olduğu iyi bilinmektedir. Bu da böyle bir sitenin arama sonuçlarında "sarkmasına" yol açabilir. Bu durumda bu durumdan çıkmanın tek yolu, arama robotlarının sitenin herhangi bir yerinde sayfalama olduğunu "görmemesini" sağlamaktır.

Sayfalandırmanın indekslenmesi nasıl engellenir?

Bu sorunu çözmenin bir yöntemi, sayfalandırma sayfalarına noindex yönergesi eklemektir. Sonunda şöyle görünmeliler:

noindex, arama motorları tarafından indekslenmesi istenmeyen bağlantıları belirlemek için kullanılan özel bir direktiftir. Bir arama robotu bu sayfaya rastladığında, bu sayfanın dikkate alınmasına gerek olmadığını hemen "anlayacaktır". Sadece atlayacak, bu yüzden dizine eklenmesi gerekenler listesine dahil edilmeyecektir.

Sorunu çözmenin tüm yolları arasında, bir WordPress kullanıcısı için en doğru ve en kolay olanı, sayfalandırmayı arama motorlarından iki tıklamayla gizleyecek bir eklentidir. Bunu yapmak için yönetici bölümüne gitmeniz yeterlidir. Clearfy Pro, ardından sekmede SEO seçeneği etkinleştir Sayfalandırma için Noindex.

Eklentinin yanı sıra Clearfy Pro, robotlardan sayfalandırmayı engellemenin daha az kullanışlı başka yolları da var. Bunlardan en popüler olanlarına bakalım.

Yöntem 1: Function.php dosyası

Bu yöntem, aktif tema dosyanıza özel PHP kodu eklemeyi içerir.

Function.php dosyasını nasıl düzenleyeceğinizi bilmiyorsanız eklenti size yardımcı olacaktır.

Yani, en sonunda aşağıdaki satırları eklemeniz gerekir:

wpschool_noindex_pagination() işlevi ( if(is_paged()) echo " "; ); add_action("wp_head", "wpschool_noindex_pagination");

Sayfalandırma sayfalarında (ikinciden başlayarak) çalışan kod sonucunda , yukarıdaki satır mevcut olacaktır:

Yöntem 2. Robots.txt dosyası

Sayfalandırma sayfaları için sitenizin kök dizininde bulunan özel bir robots.txt dosyası aracılığıyla da noindex ekleyebilirsiniz. İçine aşağıdaki satırı eklemeniz gerekir:

İzin verme: */sayfa/

Bu yöntem öncekine benzer ve aynı sonucu verir.