Usando search.php senza il campo ‘s’ in searchform.php

Scusa se questa è una domanda semplice / stupida, ma mi sto ancora occupando di come funzioni di ricerca di WordPress.

Voglio sostituire completamente la ricerca standard all’interno del mio modello con una ricerca personalizzata che richiede solo un determinato tipo di post personalizzato e i suoi metadati. Ho un modulo di ricerca che fa questo e search.php che restituisce i dati corretti. Tuttavia , la ricerca non funzionerà a meno che non includa un campo di input chiamato “s” e non sia vuoto. Prendo WP ha bisogno di questo per accedere a search.php?

Non ho bisogno di un campo di ricerca poiché la mia ricerca è basata su tassonomie e metadati personalizzati. Quindi, come posso ancora utilizzare la mia ricerca senza questo campo?

È ansible?

Solutions Collecting From Web of "Usando search.php senza il campo ‘s’ in searchform.php"

Non sono sicuro di come andare in giro usando id="s" nel campo di input. Ma per chiarire, credo che wordpress stia facendo qualcosa come $input = $_POST["s"]; quando viene effettuata la ricerca. L’ id="s ” è necessario perché indica allo script php da cui il campo di input html deve estrarre l’input. WordPress farebbe poi tutti i tipi di cose sulla variabile $input e cercerebbe il sito per questo. Non una soluzione, ma si spera risolve un po ‘di confusione.

Penso che tu l’abbia reso duro su te stesso. Senza avere tutti i dettagli non posso offrire una soluzione funzionante ma suggerirei di usare il parametro s invece di cercare di sbarazzarmene. Questo parametro è importante, come hai notato.

Usa il parametro più un filtro su pre_get_posts per controllare la ricerca, invece di dirottarla completamente.

 function alter_search_wpse_105761($qry) { if ($qry->is_search()) { $qry->set('post_type','your-post-type'); // and other conditions } } add_action('pre_get_posts','alter_search_wpse_105761'); 

Qui ci sono molte domande e risposte che citano pre_get_posts quindi non dovrebbe essere difficile elaborare i dettagli, e puoi modificare la domanda con dettagli aggiuntivi per ottenere risposte più specifiche.