Excludeți unele categorii WordPress de la paginare. Cum să excludeți postări și categorii de pe pagina de pornire WordPress, feed rss, categorii și arhive fără pluginuri

Pe pagina de start, precum și pe paginile de categorii, arhive și rezultatele căutării, este de obicei necesară navigarea în pagină (cunoscută și sub denumirea de paginare). Blogurile de pe WordPress nu fac excepție; ele folosesc și paginarea, atunci când rezultatele informațiilor sunt împărțite în mai multe pagini.

Anterior, pentru a implementa această caracteristică, au fost folosite pluginuri terțe sau funcții speciale care se aflau în fișier funcții.php. Cu toate acestea, odată cu lansarea versiunii WordPress 4.1, caracteristica de paginare a fost încorporată în nucleul CMS-ului, iar acum funcțiile interne ale WordPress sunt suficiente pentru a implementa navigarea în pagină și nu este nevoie să adăugați cod sau pluginuri terțe.

Am scris mai devreme despre o îmbunătățire similară din partea WordPress în ceea ce privește eticheta TITLE - https://aboutwordpress.ru/post/wordpress-title/.

Ce este paginarea

Paginarea este împărțirea informațiilor în pagini. Acest concept înseamnă și numerotarea secvențială a paginilor, indicată prin numere situate în partea de jos, sus sau laterală a paginii.

WP-PageNavi - plugin de paginare WordPress

Cel mai popular plugin de paginare pentru WordPress este WP-PageNavi. Sincer să fiu, face față atât de bine sarcinii de paginare încât nu are rost să discutăm și să comparăm alte plugin-uri.

Paginare WordPress - plugin WP-PageNavi

Paginare WordPress fără plugin

Pentru a face paginarea pe un site web fără pluginuri, vom folosi funcția WordPress încorporată the_posts_pagination(). În locul de care avem nevoie, trebuie să inserăm următorul cod (de obicei, acestea sunt fișiere index.php, categorie.phpși altele asemenea):

Rezultatul funcției the_posts_pagination() va fi aproximativ următorul cod HTML:

Eliminarea titlului H2 din paginare

Antetul H2 „Post Navigation” vă atrage imediat atenția. Care în cele mai multe cazuri nu are loc pe site. Pentru a scăpa de el, adăugați următorul cod în fișier funcții.php:

/* Eliminați H2 din paginare */ add_filter("navigation_markup_template", "my_navigation_template", 10, 2); function my_navigation_template($template, $class)( return "

"; }

Configurarea paginilor de paginare

În mod implicit, the_posts_pagination() afișează prima și ultima pagină, precum și o pagină în jurul celei curente. Toate celelalte sunt înlocuite cu o elipsă. Acest comportament poate fi modificat folosind argumente:

  • show_all - arată toate paginile
  • end_size - numărul de pagini la începutul și la sfârșitul listei
  • mid_size - numărul de pagini din stânga și dreapta paginii curente

De exemplu astfel:

2, „end_size” => 2,)); ?>

Stiluri de paginare CSS

Numerele paginii ( umplutură: 1% 2%; umbră casetă: 0 0 10px #ccc; marjă: 0 1% 0 0; fundal: #fff; raza chenar: 3px; )

Linkurile către pagini de paginare cu aceste stiluri vor arăta astfel:

…cum să o facă? ... în general, nu este dificil. Și dacă sarcina este tocmai de a interzice afișarea uneia sau alteia categorii, atunci vom rezolva acest capriciu în câteva minute.

Cu toate acestea, există o captură -

...rezolvând problema interzicerii afișării unei categorii într-un widget, apare o legătură sumbră cu aceasta și anume întrebarea: cum se configurează afișarea categoriilor în ordinea necesară și logică, dar nu haotic!?


...ar trebui să te gândești bine la asta. ...și definiți-vă clar nevoile. Dar mai întâi: și la final vă voi oferi o soluție perfectă și ingenioasă pentru filtrarea categoriilor...

folosirea ușurinței codului Atunci când implementați astfel de interdicții/permisiuni ale conținutului blogului necesar/inutil, merită să aveți în vedere o anumită perspectivă pentru dezvoltarea site-ului dvs., pentru a nu întâlni o altă „surpriză” însoțitoare. a fi sau a nu fi reconstruirea blogului în viitor - fie prin editarea fișierelor, fie prin înlocuirea pluginurilor.

La urma urmei, există întotdeauna o alternativă: dacă să folosiți un plugin (numărul lor „...like shag...” nu este întotdeauna bun), sau să scrieți codul în fișierul de funcții - f unctions.php (nu e rău, dar nu rezolvă problema fără ambiguitate)!?

Hotaraste-te!..

Am arătat posibila insuficiență tehnică a unui început necugetat al bloggingului, iar acum ofer posibile modalități de soluție logică:

Dacă trebuie doar să ascundeți o anumită categorie de widget WordPress, care este prezentă implicit în burta oricărui site nou, atunci este simplu.

Deschidem fișierul despre care vorbeam functions.php și undeva în decodarea sa finală) înainte de etichetă?> scriem acest filtru codificat strident.

// COD DE EXCLUDERE RUBRICĂ start function ext_widget_categories($args)( $exclude = "39"; $args["exclude"] = $exclude; return $args; ) add_filter("widget_categories_args","ext_widget_categories"); //COD DE EXCLUDERE PENTRU RUBRICURI end

Cifra 39 indică id-ul categoriei, care este filtrat ca un bazar inutil pe site.

Puteți specifica mai multe, separate prin virgule.

...Asta e, una dintre întrebări este închisă.

cum să ascundeți afișarea unei subcategorii într-un widget

Soluția este în versiunea de cod chiar mai jos, care interzice/permite afișarea numelor anumitor subcategorii (postări de blog pentru copii).

// cod de ieșire pentru singurele subcategorii ale unei categorii cu ID-ul specificat=7 start function ext_widget_categories($args)( $args["child_of"] = 7; return $args; ) add_filter("widget_categories_args","ext_widget_categories") ; //cod de ieșire pentru singurele subcategorii ale categoriei cu ID-ul specificat=7 sfârșit

Argumentarea acestor coduri poate fi combinată.

Poftim!! Am obținut controlul deplin asupra controlului DISPLAY în widget-ul „Categorii” al tuturor categoriilor dvs.

...dar - totusi, spunem noi!! Se întâmplă adesea ca ceva timp mai târziu, după ce a deschis o pagină de site, încă un defect să fie descoperit cu amărăciune: titlurile din widget-ul din bara laterală să nu fie amplasate într-o ordine logică (la întâmplare) - știi, exigența dezvoltării profesionalismului.

În acest caz, trebuie să alegeți dintre mai multe opțiuni frumoase:

Să mergem la depozitul de pluginuri WordPress - calea: console/plugins/add plugin/...install/activate... asa miracol Ordinea categoriei și Ordinul termenilor taxonomiei.

Traducere tehnică a citatului în plugin:
Comandă categoriile și toți termenii taxonomiei (personalizat ierarhic) și termenii copii utilizând capabilitățile Javascript sortabile prin glisare și plasare.
Pluginul nu are setări confuze: tot ce trebuie să faci este să treci cu mouse-ul peste „înregistrările” din stânga în consolă și să te uiți la articolul Comanda taxonomiei...

Totul este paradoxal de simplu: trăgând panourile, configurați secvența optimă de afișare a numelor titlurilor existente.

Dezavantajele metodei „plugin” includ următoarele: nu puteți interzice afișarea anumitor categorii...

Prin urmare, va trebui să utilizați codul sugerat mai sus sau pluginul prezentat mai jos...

Interzicem afișarea unor categorii folosind pluginul NS Category Widget

...să trecem din nou în depozitul WordPress și să descarcăm plug-ul NS Category Widget - acest „salt” ne va oferi o altă setare, dar mai elegantă, în plus față de widgetul „Categorii” existent: adică - un widget obișnuit ar trebui șters sau ascuns în „inactiv” și configurați această opțiune avansată pentru gestionarea conținutului: afișarea/blocarea acestuia.

Accesați setările sale și setați-vă propriile reguli: după id-ul categoriei, importanța ierarhiilor și a ajustărilor similare... E simplu!

Plugin-ul vă permite să utilizați multe unități de widget-uri la nivelurile cerute de pagini, pentru care setările sunt individuale, spre deosebire de „categoria” standard, din care puteți afișa cel puțin o duzină, dar setările codului „de sus” se va aplica tuturor: acesta este minusul capacității de a conecta un widget standard de „categorie” și codul descris chiar la începutul articolului... Și dacă intenționați să utilizați mai multe opțiuni pentru widget-uri de categorie, atunci ar trebui totuși descărcați pluginul NS Category Widget.

DAR! în cel avansat nu există o ordine mai simplă și mai subtilă pentru sortarea categoriilor - acesta este dezavantajul său. Atata confuzie!

Decizia este a ta...

...dacă ai văzut ceva util în articol pentru tine, grozav!

Buna baieti!

Astăzi va exista un articol tehnic care vă va arăta cum să excludeți postări de pe pagina principală a unui site WordPress.

De asemenea, veți învăța cum să excludeți categorii întregi, nu doar anumite intrări. Vă voi arăta multe opțiuni, atât cu și fără pluginuri. În general, totul este ca întotdeauna.

În ce cazuri ar trebui folosit?

Necesitatea excluderii unor postări, adică a anunţurilor lor, de pe pagina principală există mai ales pe blogurile personale, când pe lângă articolele mari, de înaltă calitate, pentru un public obişnuit, merită să umpleţi resursa cu articole simple optimizate SEO. .

Este puțin probabil ca astfel de articole să fie utile membrilor blogului, deoarece ei știu deja toate acestea. Pentru a nu împrăștia pagina principală cu anunțuri inutile, ar fi bine să nu le arăți. În același timp, acestea ar trebui adăugate pe site pentru a atrage noi audiențe către resursa din motoarele de căutare. De asemenea, trebuie afișate, dar acest lucru ar trebui făcut pe paginile secțiunilor și arhivelor, pentru ca noii veniți să le găsească folosind navigarea prin secțiunile site-ului.

De exemplu, nu veți găsi acest articol pe pagina principală a blogului meu pe niciuna dintre paginile lor de paginare (navigarea paginii). Totodată, anunțul articolului este vizibil în secțiunea „Util” și pe pagina de hartă a site-ului „Toate articolele”.

Fara plugin

Metoda fără plugin este întotdeauna de preferat, dar în acest caz nu va fi o prioritate, deoarece pentru a exclude un articol va trebui să faceți modificări fișierului șablon pe care l-ați instalat de fiecare dată. Dar totuși, voi arăta mai multe opțiuni diferite pentru implementarea unei astfel de soluții, deoarece este foarte posibil ca aceasta să vă convină.

Mai jos voi da diverse bucăți de cod care ar trebui plasate în fișierul șablon functions.php.

Excluzând înregistrările specifice după ID

În această opțiune, nu este nevoie să ascundeți categorii întregi de vizibilitate pe pagina principală, așa cum fac mulți cu ajutorul diferitelor plugin-uri. Tot ce trebuie să faceți este să adăugați ID-urile înregistrărilor necesare în cod.

funcția exclude_post($interogare) (dacă ($interogare->este_acasă) ($interogare->

if ($interogare -> is_home )

( $interogare -> // ID post

returnează $interogare ; )

În rândul 3, numerele 1 și 2 sunt înregistrări de identitate care nu vor apărea pe pagina de pornire. Trebuie să-l scrieți separat prin virgule.

Veți afla ID-ul postării, paginii și categoriei în bara de adrese a browserului atunci când vizualizați prin editor.

Următoarea opțiune vă va permite să excludeți intrări din fluxul RSS.

Excluderea din fluxul RSS

Acest cod vă va permite să excludeți anunțuri din fluxul de știri și să nu le trimiteți prin e-mail dacă utilizați serviciul de abonament și anunț folosind Feedburner.

funcția exclude_post($interogare) ( if ($interogare->is_feed) ($interogare->set("post__nu_în", array(1, 2));) // post (post) id return $interogare; ) add_filter(" pre_get_posts","exclude_post");

funcția exclude_post ($interogare) (

if ($interogare -> is_feed )

( $interogare -> set ( "post__not_in" , matrice ( 1 , 2 ) ) ; ) // ID post

returnează $interogare ; )

add_filter ("pre_get_posts" , "exclude_post" );

Adăugarea înregistrărilor în acest caz și în toate celelalte se face în același mod.

Excluderea din categorii și arhive

Pentru a exclude postări din paginile categoriei, ar trebui să utilizați următorul cod.

funcția exclude_post($interogare) ( dacă ($interogare->este_categorie) ($interogare->set("post__nu_în", array(1, 2));) // post (post) id returnează $interogare; ) add_filter(" pre_get_posts","exclude_post");

funcția exclude_post ($interogare) (

if ($interogare -> is_category )

( $interogare -> set ( "post__not_in" , matrice ( 1 , 2 ) ) ; ) // ID post

returnează $interogare ; )

add_filter ("pre_get_posts" , "exclude_post" );

Acest cod poate fi modificat pentru a aplica o excepție de la arhive. Este necesar să înlocuiți funcția is_category cu is_archive în a 2-a clădire.

Excluderea din pagina de căutare

Această opțiune poate fi necesară și dacă unele înregistrări nu ar trebui să fie afișate vizitatorilor atunci când folosesc căutarea pe site. De exemplu, acestea ar putea fi diverse articole de știri care nu conțin conținut pe subiectul site-ului.

funcția exclude_post($interogare) ( if ($query->is_search) ($query->set("post__not_in", array(1, 2));) // post id return $query; ) add_filter(" pre_get_posts", „exclude_post”);

funcția exclude_post ($interogare) (

if ($query -> is_search )

( $interogare -> set ( "post__not_in" , matrice ( 1 , 2 ) ) ; ) // ID post

returnează $interogare ; )

add_filter ("pre_get_posts" , "exclude_post" );

Combinând mai multe opțiuni

Puteți combina toate opțiunile de mai sus și puteți exclude înregistrările din toate tipurile de pagini simultan sau selectiv pe cele necesare.

Dacă vă uitați bine la toate codurile, atunci în a doua linie puteți vedea o condiție în care parametrul tipuri de pagină este setat pentru a dezactiva afișarea anunțurilor postate în ele:

  • is_search
  • is_category
  • is_feed
  • este acasa

Puteți combina toate opțiunile și puteți exclude postările de oriunde sau de pe unele pagini. De exemplu, pentru excluderile din categorii și main, ar trebui să plasați următorul cod în fișierul functions.php.

funcția exclude_post($interogare) ( dacă ($interogare->este_categorie || ($interogare->este_acasă)) ($interogare->set("post__nu_în", array(1, 2));) // ID post ) return $query; ) add_filter("pre_get_posts","exclude_post");

funcția exclude_post ($interogare) (

if ($interogare -> este_categorie || ($interogare -> este_acasă ) )

( $interogare -> set ( "post__not_in" , matrice ( 1 , 2 ) ) ; ) // ID post

returnează $interogare ; )

add_filter ("pre_get_posts" , "exclude_post" );

A doua linie cu condiția (if) conține parametri pentru categorii (is_category) sau home (is_home).

Rețineți că fiecare parametru următor este scris în interiorul celui precedent prin 2 bare verticale și este situat între paranteze proprii. Adică, dacă te uiți la codul anterior, vei vedea că a doua condiție pentru pagina principală este inclusă în propriile paranteze și se află în parantezele generale care înglobează prima condiție pentru categorii.

Dacă merită să adăugați un fel de a treia condiție, de exemplu pentru paginile de arhivă, atunci merită să o adăugați între paranteze cu condiția pentru cea principală (is_home) și să o scrieți prin 2 bare verticale. În practică arată așa.

funcția exclude_post($interogare) ( dacă ($interogare->este_categorie || ($interogare->este_acasă || ($interogare->este_arhivă)))) ($interogare->set("post__nu_în", array(1, 2) );) // post id return $query; ) add_filter("pre_get_posts","exclude_post");

funcția exclude_post ($interogare) (

if ($interogare -> este_categorie || ($interogare -> este_acasă || ($interogare -> este_arhivă ) ) )

( $interogare -> set ( "post__not_in" , matrice ( 1 , 2 ) ) ; ) // ID post

returnează $interogare ; )

add_filter ("pre_get_posts" , "exclude_post" );

Folosind același principiu, adăugați alte tipuri de pagini de exclus.

Următoarea opțiune pentru excluderea înregistrărilor este să excludeți titluri întregi (categorii).

Excluzând categorii întregi

Acest lucru este foarte convenabil pentru oamenii leneși, când puteți pur și simplu să creați un fel de categorie și să adăugați acolo toate postările care nu necesită afișare pe anumite tipuri de pagini.

Structura codului este aproape aceeași. Schimbă doar parametrul care specifică excluderea unei postări sau a unei categorii. În cazurile discutate anterior, ultima linie a fost setată la exclude_post. În noul cod ar trebui înlocuit cu exclude_cat.

funcția exclude_cat($interogare) ( dacă ($interogare->este_acasă) ($interogare->set("pisica","-1, -2, -3");) // ID categorie returnează $interogare; ) add_filter( "pre_get_posts","exclude_cat");

funcția exclude_cat ($interogare) (

if ($interogare -> is_home )

( $interogare -> set ("pisica", "-1, -2, -3" ) ; ) // ID categorie

returnează $interogare ; )

add_filter ("pre_get_posts" , "exclude_cat" );

După cum puteți vedea, ultima linie a suferit modificări și a treia linie, unde parametrul care citește ID-ul categoriei a fost modificat. ID-ul în acest caz se scrie printr-o liniuță, dar și prin virgulă.

Principiul construirii condițiilor pentru tipurile de pagini este similar cu opțiunile discutate mai devreme, unde am arătat exemplul excluderii unor postări specifice. Merită să schimbați linia a 2-a, adăugând parametrii necesari pentru categorii, căutare, arhive sau fluxuri RSS.

Deci, ne-am uitat la metode fără un plugin. Există, de asemenea, o opțiune de excludere a intrărilor despre etichete, dar acum etichetele nu mai sunt foarte relevante pentru 99% din resurse. Dacă aveți nevoie de astfel de informații, vă rugăm să scrieți despre ele în comentarii. Voi adăuga totul imediat.

Pluginuri

Pluginurile sunt o soluție mai flexibilă în această problemă, deoarece atunci când excludeți anumite intrări nu este nevoie să editați fișierul șablon de fiecare dată. Merită să puneți o casetă de selectare în editorul postărilor dorite atunci când le publicați sau după.

Dacă merită să excludeți o categorie specială creată pentru articolele care nu necesită afișare, atunci este mai bine să utilizați unul dintre codurile furnizate mai sus.

Pur și simplu Excludeți pluginul

Puteți descărca pluginul fie prin consola WordPress folosind căutarea, fie de la site-ul oficial WordPress.

După activare, va funcționa deja și nu trebuie să-l configurați. Dar totuși, recomand să faceți câteva modificări pentru a face lucrul cu funcțiile sale mai plăcut.

După instalare și activare, mergem imediat la setările acestuia.

Inițial, în setările pluginului totul este setat astfel încât atunci când caseta de selectare este activată (o vom privi mai jos), paginile necesare (postări, categorii, pagini) să fie marcate ca „permise pentru afișare”. Astfel, pentru fiecare tip de pagină va trebui să bifați toate casetele de selectare pentru ca totul să fie afișat.

Ar fi mai logic să setați această opțiune atunci când, activând o casetă de selectare (de exemplu, pentru pagina principală), va marca un articol sau altceva ca interzis pentru afișare.

În setări există 3 file care sunt concepute pentru a configura setările pentru diferite tipuri de pagini:

  • Taxonomii (taxonomii) - setări pentru funcționarea pluginului în secțiuni din panoul de administrare WordPress: categorii și etichete;
  • Tipuri de postări - pentru tipuri de postări: articole și pagini;
  • Utilizatori - setări pentru utilizatori.

Acum voi da o captură de ecran a setărilor primei file (taxonomie) și voi explica parametrii care ar trebui setați.

  • În primul bloc de setări „Activ” trebuie să setați caseta de validare „Activ”, astfel încât pluginul să adauge casetele de selectare necesare pentru a dezactiva afișarea în categorii sau orice alte tipuri de pagini;
  • În al doilea bloc setăm toți parametrii vizavi de opțiunea „Exclude”. Înseamnă că dacă caseta de selectare este activată în editorul fiecărui tip de pagină, aceasta va fi ascunsă de afișare și articole noi vor fi deschise pentru afișare în mod implicit. Dacă setați parametrul „Include only”, atunci bifând caseta de selectare, intrările vor fi deschise pentru afișare și articolele noi vor fi ascunse în mod implicit. Dacă a doua opțiune „Include only” este selectată, atunci după instalarea pluginului toate intrările vor fi ascunse și va trebui să setați opțiunea „Exclude”;
  • În blocul „Afișare/Ascunde”, setați parametrul „Afișare” astfel încât casetele de selectare necesare să fie afișate în fiecare tip de pagină pentru a putea dezactiva sau activa afișarea.

Aceiași parametri ar trebui introduși în celelalte 2 file din setările pluginului Simply Exclude.

De exemplu, iată o captură de ecran a filei „Tipuri de postări”.

Desigur, puteți dezactiva funcționarea unor funcții, de exemplu, în prima filă puteți dezactiva pluginul pentru categorii dacă nu vom exclude toate postările unei întregi categorii.

Acum despre munca pluginului în sine. Când ați setat parametrii necesari, puteți merge la editor pentru fiecare tip de postare și puteți bifa casete lângă acele pagini în care doriți să excludeți afișarea acestora.

De exemplu, pentru a seta setările pentru postări, puteți merge la editorul articolului solicitat sau prin elementul toate articolele. Atât acolo, cât și acolo vor fi casetele de selectare necesare. În editor, în coloana din dreapta va exista un bloc „Pur și simplu Excludeți” care conține 4 casete de selectare pentru ascunderea postărilor și paginilor:

  • Arhive - categorii și arhive;
  • Fluxuri - fluxuri RSS;
  • Față/Acasă - principal;
  • Căutări - căutare.

Bifând caseta de selectare necesară, puteți ascunde postarea dintr-un anumit tip de pagină.

În panoul de administrare WordPress „Toate postările” vizavi de fiecare material într-o nouă coloană numită „Excludeți pur și simplu show” vor exista și aceste 4 casete de selectare. Același lucru este valabil și pentru rubrici. Va fi adăugată o nouă coloană cu toate casetele de selectare.


Asta e tot pentru acest plugin. Instalând-o, puteți modifica foarte rapid și flexibil parametrii de afișare a anumitor postări sau categorii întregi, fără a interfera cu fișierele șablon.

Excludeți pluginul Categorii

Pluginul are scopul doar de a ascunde o întreagă categorie din pagina principală și din fluxul RSS. Deoarece această opțiune nu necesită multă flexibilitate (am creat o categorie o dată și am adăugat articole acolo), recomand implementarea excluderii unei întregi categorii folosind cod (vezi punctul 2).

Puteți descărca pluginul folosind butonul de mai jos.

După instalare, accesați setări (Setări - Exclude categorie) și selectați categoria necesară pentru a o exclude din pagina principală.

Excluderea tuturor intrărilor dintr-o categorie este o opțiune comună. Dar văd un dezavantaj în el, deoarece site-ul trebuie să publice o mulțime de articole pentru a atrage trafic de căutare și toate vor fi pe probleme diferite ale aceluiași subiect.

Dar introducerea diferitelor materiale într-o singură categorie nu este foarte bună.

Această opțiune este adesea folosită și atunci când se vinde în mod activ link-uri pe un site web. Proprietarul creează o secțiune și publică toate articolele cu link-uri de vânzare în ea. Și nici acest lucru nu este foarte bun, deoarece acum webmasterii solicită plasarea unui link într-una dintre secțiunile principale ale site-ului, astfel încât să fie cel puțin ușor clicabil și să aibă efect în timpul promovării.

Asta e, băieți, pe această notă închei acest manual detaliat, care ar trebui să vă fie util dacă ați ajuns la locul potrivit pentru acest articol. Sper că totul merge bine pentru tine.

Vă doresc o dispoziție minunată și o zi minunată. Te văd.

Salutări, Konstantin Khmelev!

Astăzi este un articol despre cum poți exclude manual, fără a folosi pluginuri, categorii din pagina principală a unui site WordPress.

Există mai multe modalități de a exclude postări dintr-o anumită categorie de pe pagina principală a site-ului blogului tău. Una dintre cele mai ușoare moduri, în opinia mea, este să adăugați o mică bucată de cod la fișier funcții.php. Această bucată de cod va fi un fel de filtru care ne va scuti de a fi nevoiți să schimbăm alte fișiere temă. Folosind această metodă, nu trebuie să pierdeți timp reluând ciclul de ieșire a înregistrărilor într-un fișier index.php prin query_posts.

Deci, să ne uităm la un exemplu:

1) Să presupunem că trebuie să ștergem intrările dintr-o categorie al cărei număr de identificare este 4, adică ID = 4. Cu alte cuvinte, trebuie să excludem postările din categoria al cărei ID este 4 din pagina principală.

2) Am hotărât sarcinile, să începem să le implementăm - pentru aceasta le vom adăuga în fișier funcții.php următoarea bucată de cod:

Funcția removeFromHome($query) (dacă ($query->is_home) ($query->

Salvăm fișierul modificat funcții.php si vedem ca nu mai sunt intrari din categoria ID=4 pe pagina principala.

Din punct de vedere al logicii WordPress, pagina principală este, de asemenea, orice altă pagină care este formată din navigarea paginii. Astfel, nu vom vedea postări din categoria exclusă ID=4 pe pagina 2, 3 sau 4 și așa mai departe.

Dacă această opțiune nu vi se potrivește, atunci puteți modifica ușor codul de mai sus în acesta:

Funcția removeFromHome($query) ( if ($query->is_home && !(is_paged()))) ($query->set("cat","-5");) return $query; ) add_filter("pre_get_posts" ,"removeFromHome");

Salvăm și acum pe fiecare pagină, cu excepția paginii principale, intrările din categoria cu ID=4 vor fi afișate normal.

Excluderea intrărilor de categorie din rezultatele căutării

Dacă trebuie să excludeți intrările de categorie din pagina cu rezultatele căutării, atunci trebuie doar să modificați este acasa pe is_search.

Pentru a exclude intrări din mai multe categorii, trebuie să enumerați ID-urile acestor categorii separate prin virgulă în codurile de mai sus. Să presupunem că trebuie să excludeți categoriile ale căror ID-uri sunt 3,7,8,9. Apoi codul va avea următoarele modificări:

Funcția removeFromFeed($query) ( dacă ($query->is_feed) ($query->set("cat","-3, -7, -8, -9");) return $query; ) add_filter(" pre_get_posts","removeFromFeed");

Excluderea intrărilor de categorie din fluxul RSS

Ce ar trebui să faceți dacă trebuie să excludeți postările dintr-o anumită categorie din fluxul RSS? Și o poți face foarte simplu - folosește codul de mai jos:

Funcția removeFromFeed($query) ( if ($query->is_feed) ($query->set("cat","-4");) return $query; ) add_filter("pre_get_posts","removeFromFeed");

Salvăm modificările și vedem că nu mai sunt postări în feed din categoria de care nu avem nevoie.

Excluderea intrărilor de categorie din fluxul RSS și pagina principală

Dacă dintr-o dată trebuie să vă asigurați că postările dintr-o anumită categorie nu sunt afișate pe pagina principală și în feed, atunci trebuie să utilizați următorul cod:

Funcția removeCat($query) ( dacă ($query->is_feed || ($query->is_home && !(is_paged()))) ($query->set("cat","-3,-7") ;) returnează $query; ) add_filter("pre_get_posts","removeCat");

În acest caz, intrările din categoriile al căror ID este 3 nu vor fi afișate pe pagina principală și în fluxul RSS, ci vor fi afișate atunci când se vor deschide alte pagini.

Modificări ale fișierului funcții.php poate fi introdus oriunde, dar fără a atinge codul unei alte funcții. Cel mai simplu mod este să adăugați codul la sfârșitul fișierului.

Este bine cunoscut faptul că paginarea provoacă duplicarea paginilor. Acest lucru, la rândul său, poate duce la faptul că un astfel de site se poate „scădea” în rezultatele căutării. În acest caz, singura cale de ieșire din această situație este să vă asigurați că roboții de căutare nu „văd” că există paginare oriunde pe site.

Cum să blochezi paginarea de la indexare?

O metodă de a rezolva această problemă este adăugarea unei directive noindex pe paginile de paginare. Până la urmă ar trebui să arate așa:

noindex este o directivă specială folosită pentru a desemna link-uri care nu sunt de dorit pentru indexarea de către motoarele de căutare. Când un robot de căutare dă peste el, va „înțelege” imediat că această pagină nu trebuie să fie luată în considerare. Pur și simplu îl va sări peste el, motiv pentru care nu va fi inclus în lista celor care ar trebui adăugate la index.

Dintre toate modalitățile de a rezolva problema, cea mai corectă și mai ușoară pentru un utilizator WordPress este un plugin, care va ascunde paginarea de motoarele de căutare în două clicuri. Pentru a face acest lucru, trebuie doar să accesați secțiunea de administrare Clearfy Pro, apoi pe fila SEO activați opțiunea Noindex pentru paginare.

Pe langa plugin Clearfy Pro, există și alte modalități, mai puțin convenabile, de a bloca paginarea de la roboți. Să ne uităm la cele mai populare dintre ele.

Metoda 1: fișierul functions.php

Această metodă implică adăugarea unui cod PHP special la fișierul dvs. de temă activ.

Dacă nu știți cum să editați functions.php, atunci pluginul vă va ajuta.

Deci, la sfârșit, trebuie să adăugați următoarele rânduri:

Funcția wpschool_noindex_pagination() ( if(is_paged()) echo " ";); add_action("wp_head", "wpschool_noindex_pagination");

Ca urmare a rulării codului pe paginile de paginare (începând din a doua), în secțiune , linia de mai sus va fi prezentă:

Metoda 2. Fișierul Robots.txt

De asemenea, puteți adăuga noindex pentru paginile de paginare printr-un fișier robots.txt special, care se află în directorul rădăcină al site-ului dvs. Trebuie să adăugați următoarea linie în el:

Nu permite: */pagina/

Această metodă este similară cu cea anterioară și dă același rezultat.