Căutați o modalitate de a afișa o listă a tuturor postărilor dvs. într-un meniu derulant? Deși probabil există un plugin pentru asta, am creat o scurtă secțiune de cod pe care o puteți folosi pentru a afișa toate postările într-un meniu derulant în WordPress.
Puteți ajusta numărul de postări afișate schimbând valoarea -1 din matricea $args.
Instrucțiuni:
Tot ce trebuie să faceți este să adăugați acest cod în fișierul index.php al temei dvs.:
<form action="<? bloginfo('url'); ?>" method="get">
<select name="page_id" id="page_id">
<?php
global $post;
$args = array( 'numberposts' => -1);
$posts = get_posts($args);
foreach( $posts as $post ) : setup_postdata($post); ?>
<option value="<? echo $post->ID; ?>"><?php the_title(); ?></option>
<?php endforeach; ?>
</select>
<input type="submit" name="submit" value="view" />
</form>
Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.
Dacă v-a plăcut această secvență de cod, vă rugăm să luați în considerare să consultați și celelalte articole de pe site, cum ar fi: Cele mai bune 50+ teme WooCommerce pentru magazinul dvs. online și cum să creați un formular de donații WordPress.
Domnule, folosesc tipul de postare portofoliu avada și codul dvs. funcționează corect, dar strică tot aspectul paginii normale.
Am adăugat 'post_type' => 'avada_portfolio',
Dropdown funcționează bine, dar tot conținutul normal al paginii are o miniatură de portofoliu.
Cum pot remedia acest lucru?
Vă rog să mă ajutați.
<form action="” method=”get”>
— Selectați elementul —
-1,
‘post_type’ => ‘avada_portfolio’,
);
$posts = get_posts($args);
foreach( $posts as $post ) : setup_postdata($post); ?>
<option value="ID);?>” class=”ID; ?>”>
Codul pe care l-ați inclus are unele erori de sintaxă. De exemplu, PHP și HTML nu sunt separate corespunzător.
Salut, dar când dai clic pe o opțiune selectată, linkul nu funcționează.
Cum pot rezolva asta?
Când butonul de trimitere este apăsat, consola afișează mesaje de eroare?
Salut ,
Vă rog, aș dori să știu cum să afișez acest meniu derulant pe o altă pagină decât index.php?
În acest caz, ar trebui să adăugați codul în fișierul șablon al temei corespunzătoare.
Vreau să pun un shortcode într-un widget de text pentru a afișa un meniu derulant cu linkuri către toate postările mele. Prin urmare, am nevoie de un cod php pe care să-l pun în pluginul PHPCode Snppets. Mă puteți ajuta?
Kevin, codul tău funcționează bine pentru mine. Doar trebuie să confirm, putem elimina /?submit=view din URL odată ce faceți clic pe butonul view post la sfârșitul URL-ului, este adăugat automat. Cum îl elimin?
Acest lucru pare a fi adăugat de WordPress. Ați putea încerca să eliminați șirul de interogare cu JavaScript după ce pagina se încarcă, dar acest lucru nu este recomandat.
Salut, lucrez la o aplicație web de anunțuri pe WordPress. Aveți un fragment de cod care schimbă selecția derulantă (Categorie) într-o vizualizare listă. Similar cu stilul de postare a anunțurilor de pe Olx.in. Astfel, utilizatorul poate selecta ușor vizualizând totul dintr-o dată, în loc să deruleze în jos. Sper că înțelegeți problema mea.
Am adăugat codul de mai sus în bara laterală într-un widget de text, dar nimic nu apare în zona derulantă (este doar albă). Aveți vreo idee de ce? Mulțumesc!
Salut, tutorial grozav, dar mă întreb dacă este posibil să creezi două liste derulante. Prima alege o categorie, iar a doua afișează toate postările din acea categorie, apoi există un buton (link) care permite accesarea postării alese? Crezi că este posibil? Am scris deja niște cod care preia valori hardcodate și modifică lista cu javascript, dar aș dori să fie dinamic, acum trebuie să adaug fiecare postare nouă în lista mea hardcodată la categoria corectă, multă bătaie de cap…. Mulțumesc!
Da, ceva de genul acesta ar putea fi realizat, însă ar trebui să folosești ajax pentru a prelua toate postările dintr-o anumită categorie atunci când este selectată. Nu este doar o simplă modificare a codului de mai sus.
Salut Kevin, mulțumesc pentru tutorialul tău. Cum să creez o opțiune selectată? Folosesc codul tău pentru a afișa titlul tipului meu de postare personalizată, dar când selectez una și apăs butonul de trimitere, revine la prima (adică nimic selectat).
Acest fragment creează doar meniul, nu face nimic mai mult. Cu toate acestea, poți folosi următorul script de pe site-ul soră al wpsnipp.com, jqsnipp.com, pentru partea de jquery.
http://jqsnipp.com/create-jquery-select-dropdown/
Apoi, în fragmentul de mai sus, schimbă
<option value=\"ID; ?>”>în
<option value=\"”>
Acest lucru va adăuga permalink-ul la valoare, iar JavaScript-ul de pe jqsnipp vă va permite să săriți la locație atunci când selectați elementul din meniu.
mulțumesc mult
Salut Kevin,
Mulțumesc mult pentru postare. Căutam peste tot cum să realizez acest lucru cu tipuri de postări personalizate. Știi cum pot realiza acest lucru astfel încât, atunci când elementul este selectat din meniul derulant, să meargă automat la pagină fără a fi nevoie de un buton „trimite”?
Mulțumesc!
Salut Chris,
În loc să folosești doar $post->ID pentru valoare, ai putea adăuga
get_permalink($post->ID) apoi folosiți javascript pentru a vedea ce opțiune a fost selectată.
Dacă folosiți jQuery, am un fragment pe celălalt site http://jqsnipp.com pe care îl puteți
folosi pentru exact acest tip de lucru. http://jqsnipp.com/create-jquery-select-dropdown/
Salut, pot să-mi listez articolele din portofoliu? Încerc dar… 🙂
Salut Roberta,
Presupun că doriți să afișați un tip de postare personalizat? Trebuie să adăugați tipul de postare în array-ul $args. Dacă adăugați ‘post_type’ => ‘post’, acest lucru ar trebui să rezolve problema după ce schimbați post cu numele tipului dvs. de postare personalizat.
Mulțumesc ^^
Mulțumesc ^^
Salut, există vreo modalitate de a schimba dimensiunea drop-down-ului sau a câmpului drop-down?
Mulțumesc
În CSS, adaugă
.dropbox {
height: 30px; /* Schimbă conform preferințelor tale*/
}
Mulțumesc pentru acest fragment de cod. Îmi cer scuze pentru engleza mea, voi face tot posibilul 🙂 Am nevoie de o „primă linie” precum „Please Chosse…”. Mă puteți ajuta să pun această linie în codul dvs.? garfield853
Unde plasez asta??
Salut Ferry, plasează codul unde dorești să îl afișezi în tema ta.
mulțumesc
Perfect!!!
Ce se întâmplă dacă ai vrea să faci asta pe categorii? Deci să afișezi toate postările sub fiecare categorie?
Funcționează și cu tipuri de postări personalizate?
Salut Fin, da, poți adăuga tipul de postare în array-ul args, de exemplu:
array(
‘numberposts’ => -1,
‘post_type’=> ‘post’,
);
Acest lucru funcționează excelent și mulțumesc!
Poți să mă sfătuiești cum să afișez toate postările dintr-o anumită categorie
Doar adaugă cat și ID-ul categoriei
array(
‘numberposts’ => -1,
‘post_type’=> ‘post’,
‘cat’ => ‘2’,
);
Salutări Kevin!
Salut Kevin, îți mulțumesc pentru postarea codului pe această pagină. Mi-a fost de mare ajutor în organizarea barei laterale la (link eliminat). Te rog, cutia „Churches of NY”, aș dori ca cutia să înceapă cu „Select Post” — cum pot implementa această opțiune? De asemenea, cum pot face ca selecția să meargă direct la postare, fără cutia „view”? Mulțumesc.