Cum să creez un link către cel mai recent articol dintr-o categorie?

4 ian. 2014, 20:47:10
Vizualizări: 13.9K
Voturi: 5

Cum pot crea un link către o categorie--mai exact către cel mai recent/actual articol din acea categorie?

Vreau să afișez articolul propriu-zis. Nu vreau să afișez pagina de categorie cu un singur articol listat în ea. O să fiu puțin naiv acum... :)

Dar în imaginația mea uneori sălbatică și fără limite, ceva de genul ar trebui să fie deja disponibil:

domain.com/nume-categorie/index.php?newest

sau

domain.com/categorie/nume-categorie/index.php?latest&wpusers=multumiti-acum

Am căutat și există multe soluții la nivel de PHP. Iar acest site nu mă lasă să postez mai mult de două linkuri aici, așa că îmi cer scuze pentru această limitare.

...și pentru referință, iată cele mai bune linkuri pe care le-am analizat (unele sunt 100% în context dar depășite, așa că nu știu dacă mai sunt valabile în WordPress):

Rezolvat

Link către cel mai recent articol dintr-o categorie?

Link către ultimul articol din categorie

Aveam încă vreo zece linkuri relevante...

Dar din nou, pare că nu ar trebui să existe DOAR o modalitate la nivel de PHP, funcții sau template pentru a face asta. Există atâtea elemente interesante de genul ?asta și &ceea ce se adaugă în URL, încât ar trebui să existe unul care să obțină cel mai recent articol.

Un bun exemplu este un link de playlist YouTube. Încarcă cel mai recent videoclip și permite tot felul de opțiuni precum &height &width &rel=0.

Sunt uimit că aceasta nu este o funcționalitate de bază în WordPress.

Momentan am mai multe variații de widget-uri care pot afișa un articol recent sau recomandat pe pagina principală cu un fragment și o imagine reprezentativă. Când cineva dă click pe titlu, imagine sau pe "Citește mai mult", sunt duși la acel articol.

Deci văd că widget-urile pot crea linkurile--dar nu sunt suficient de expert să înțeleg cum să folosesc același concept pentru a crea un link fără a afișa totul.

1
Comentarii

Ar trebui să postezi soluția ta ca răspuns

Pieter Goosen Pieter Goosen
20 mai 2014 17:54:03
Toate răspunsurile la întrebare 1
0
11

Nu este integrat în nucleul WordPress, dar este cu siguranță posibil de adăugat. Totuși, nu aș considera o idee bună să ai un singur articol disponibil la mai multe URL-uri, așa că o redirecționare este probabil cea mai bună soluție. Desigur, va fi nevoie de un pic de PHP, deoarece WordPress nu funcționează pe bază de magie sau voință.

În primul rând, conectăm o funcție la acțiunea parse_request, care rulează atunci când WordPress determină cum să seteze variabilele de interogare pentru interogarea principală.

Următorul fragment de cod presupune că permalink-urile frumoase sunt activate și că URL-urile categoriilor au o bază de categorie. În aceste condiții, variabila de interogare category_name este setată, așa că putem verifica dacă aceasta este o solicitare pentru o categorie. În același timp, verificăm și dacă este setată o variabilă GET latest, astfel încât împreună acest cod va fi declanșat când un URL arată astfel:

http://example.com/category/o-categorie/?latest

Dacă aceste condiții sunt îndeplinite, interogăm un singur articol în numele categoriei solicitate, prin intermediul WP_Query, care implicit ne va oferi cel mai recent articol din acea categorie.

Dacă este găsit un articol, redirecționăm către URL-ul acelui articol prin wp_redirect.

Acest fragment de cod poate fi plasat în fișierul functions.php al temei noastre:

function wpa_latest_in_category_redirect( $request ){
    if( isset( $_GET['latest'] )
        && isset( $request->query_vars['category_name'] ) ){

        $latest = new WP_Query( array(
            'category_name' => $request->query_vars['category_name'],
            'posts_per_page' => 1
        ) );
        if( $latest->have_posts() ){
            wp_redirect( get_permalink( $latest->post->ID ) );
            exit;
        }

    }
}
add_action( 'parse_request', 'wpa_latest_in_category_redirect' );
9 ian. 2014 04:34:45