WordPress: Kako poredati postove prilagođene vrste postova po abecedi
S novom temom (i podređenom temom) koju sam implementirao Martech Zone, morao sam ponovno izgraditi i ponovno kodirati prilagođenu vrstu posta za koju sam napravio Akronimi. Optimizirao sam kod za umetanje nekih dodatnih prilagođenih polja i moram redizajnirati predloške arhive i taksonomije kako bih bolje prikazao navedene akronime.
U mojoj posljednjoj temi (čiji su programeri prekinuli podršku), te su stranice dobile dosta pažnje jer su bile dobro dokumentirane i čak su prikazivale relevantne članke za akronim. Nastavit ću premještati tu funkcionalnost na novu stranicu i čak želim koristiti metodologiju lebdenja za prikaz definicije kratice umjesto da posjetitelj klikne na vezu kratice. Dosta o tome…
Prilagođeno sortiranje vrste posta
Budući da je WordPress izvorno dizajniran za korištenje bloga, zadana je postavka bilo koje vrste posta (uključujući prilagođenu vrstu posta) redoslijed postova obrnutim kronološkim redoslijedom. Iako to funkcionira za vijesti i članke, nije korisno za stvari poput pojmovnika ili popisa akronima. Želim da se moji akronimi poredaju alfanumerički, a ne prema datumu koji ih je unio u WordPress.
Kao i kod gotovo svake značajke u WordPressu, ovo se može lako prilagoditi pomoću WordPress API-ja. U mojoj functions.php datoteci u svojoj podređenoj temi, dodao sam sljedeći kod:
add_action( 'pre_get_posts', function ( $query ) {
if ( $query->is_archive() && $query->is_main_query() ) {
if ( get_query_var( 'post_type' ) == 'acronym' ) {
$query->set( 'order', 'ASC' );
$query->set( 'orderby', 'title' );
};
};
} );
Korištenje električnih romobila ističe pre_get_posts Funkcija je radnja koja se izvršava kad god se postavi upit za objave. U gornjem kodu mogu osigurati da svaki upit za prilagođenu vrstu posta of akronim je posebno postavljen da bude razvrstan prema naslovu uzlaznim redoslijedom.
Ovo ne samo da postavlja ovaj redoslijed u ispisu stranica arhive i taksonomije, nego čak alfanumerički poreda prilagođenu vrstu posta unutar administrativne ploče WordPressa.
Budući da postavljate zadane parametre upita, možete dodati i druge varijable, poput broja zapisa za dohvaćanje (
posts_per_page). Što se tiče akronima, vraćam 25 zapisa odjednom, a na ostatku web-mjesta zadano ih je 10.Ako želite samo objaviti prilagođenu vrstu posta abecednim redom na vašem predlošku arhive, ali ne i na vašoj WordPress administracijskoj ploči, možete ažurirati taj kod na:
function acronym_archive_orderby_title($query) {
// Check if it's the main query, an archive page, and the post type is 'acronym'
if ($query->is_main_query() && is_post_type_archive('acronym') && !is_admin()) {
// Order by title alphabetically
$query->set('orderby', 'title');
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'acronym_archive_orderby_title');
Prilagođene vrste postova mogu vam pomoći da značajno proširite mogućnosti svoje web-lokacije... a sve se to može učiniti s nekim jednostavnim kodom unutar vaše podređene teme (ili temeljne teme) bez potrebe za dodacima. Zapravo, preporučam da ne koristite dodatke jer oni često povećavaju računalni teret koji može usporiti vašu web-lokaciju. Trenutno radim na stranici klijenta gdje bi željeli uključiti slobodna radna mjesta... i ovaj kod će im također dobro doći!