Cum elimin Paginile din căutare?
Nu am nevoie să caut pagini pe site-ul meu și vreau să caut doar articole, există o modalitate de a face acest lucru? Mulțumesc

Codul de mai jos va face ca tipul de postare "pagina" să nu mai fie căutabil în rezultatele căutării.
function remove_pages_from_search() {
global $wp_post_types;
$wp_post_types['page']->exclude_from_search = true;
}
add_action('init', 'remove_pages_from_search');

Există vreo modalitate de a ascunde anumite pagini în loc să le ascundem pe toate?

ar trebui să fie soluția. mai elegant, mai ușor de întreținut. varianta de mai sus modifică doar parametrii tipului de postare, în timp ce aceasta modifică interogarea de căutare în sine. +1

Modificarea obiectului tipului de postare pentru tipul 'page' este o soluție mai bună. Această soluție forțează tipul de postare să fie hardcodat ca 'post' pentru toate interogările de căutare, ceea ce ar împiedica afișarea oricăror tipuri personalizate de postări în rezultatele căutării dacă un site le-ar avea. Setarea globală a proprietății exclude_from_search pentru obiectul tipului de postare 'page' înseamnă că orice cod care depinde de verificarea acestei proprietăți va avea informația corectă.

Un link oarecum relevant cu puțină informație suplimentară: http://codex.wordpress.org/Post_Types#Custom_Post_Types_in_the_main_Query

Iată codul pentru eliminarea anumitor pagini din căutarea în WordPress, adăugați următorul cod în fișierul functions.php Doar înlocuiți array-ul cu ID-urile paginilor dumneavoastră
function remove_pages_from_search($query) {
if ( !is_admin() && $query->is_main_query() ) {
if ($query->is_search) {
$query->set('post__not_in', array(3031,2958,2926));
}
}
}
add_action('pre_get_posts','remove_pages_from_search');

pune asta în search.php
<?php if (is_search() && ($post->post_type=='page')) continue; ?>
chiar sub acest cod -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>
poți afla mai multe aici http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages

Nu am un fișier search.php, dacă îl iau de la o altă temă, va funcționa? Mulțumesc

da. mai întâi creează un fișier search.php gol, apoi copiază și lipește codul din index.php. apoi fă cum ți-am spus mai sus.

Această soluție respectă API-ul WordPress în loc să modifice direct variabilele interne.
Observați că în acest fel puteți de asemenea include (suprascrie înregistrarea) tipuri sau să modificați argumentele de înregistrare furnizate în register_post_type()
. Consultați descrierea 'exclude_from_search'
în documentație.
/**
* Filtrează tipurile de obiecte în rezultatele căutării.
*
* @param array $args Matrice de argumente pentru înregistrarea unui tip de post.
* Vezi funcția register_post_type() pentru argumentele acceptate.
* @param string $type Cheia tipului de post (obiect) (ex. 'post', 'page', 'attachment'...,
* sau orice tip de post personalizat înregistrat).
* @return array Atributele filtrate ale tipului.
*/
function _filter_search_types( $args, $type ) {
$exclude_types = array( 'page' );
if ( in_array( $type, $exclude_types, true ) ) {
$args['exclude_from_search'] = true;
}
return $args;
}
if ( ! is_admin() ) {
add_filter( 'register_post_type_args', __NAMESPACE__ . '\_filter_search_types', 10, 2 );
}

@Rup - Am vorbit despre WP API, nu WP REST API (care este irelevant aici). Și aceasta nu este o "alternativă" la răspunsul acceptat, ci "metoda corectă", deoarece "răspunsul acceptat" nu urmează WP API și, ca orice modificare directă a variabilelor, ar trebui considerat un hack mai degrabă decât o soluție.

@Rup - Și ai dreptate - comment
nu este un tip de post (corectat).
