Come posso collegarmi al post più recente in una categoria?

4 gen 2014, 20:47:10
Visualizzazioni: 13.9K
Voti: 5

Come posso creare un link a una categoria che punti al suo post più recente/attuale?

Voglio mostrare il post effettivo. Non voglio visualizzare la categoria con un elenco di post. Sarò davvero ingenuo qui... :)

Ma nella mia immaginazione a volte selvaggia e senza limiti, qualcosa del genere dovrebbe già essere disponibile:

dominio.com/nome-categoria/index.php?newest

o

dominio.com/categoria/nome-categoria/index.php?latest&wpusers=piu-felici-ora

Ho cercato e ci sono molte soluzioni a livello PHP. E questo sito non mi permette di pubblicare più di due link qui, quindi mi scuso per la limitazione.

...e per riferimento ecco i migliori tra i link correlati che ho esaminato (alcuni sono 100% pertinenti ma datati, quindi non so se siano ancora efficaci con WordPress):

Risolto

Link al post più recente in una categoria?

Link all'ultimo post nella categoria

Avevo circa altri dieci link pertinenti...

Ma ancora una volta, sembra davvero che non debba esserci SOLO un modo a livello PHP, funzione o template per fare questo. Ci sono così tanti piccoli elementi ?questo e &quello aggiunti all'URL che dovrebbe essercene uno che ottiene l'ultimo post.

Un buon esempio è un link a una playlist di YouTube. Carica l'ultimo video e permette tutte le capacità di &height &width &rel=0.

Sono un po' sorpreso che questa non sia una funzionalità core di WordPress.

Al momento ho diverse varianti di widget che possono mostrare un post recente o in evidenza nella pagina principale con un estratto e un'immagine in evidenza. Quando qualcuno clicca sul titolo, sull'immagine in evidenza o su "Leggi tutto", viene portato a quel post.

Quindi posso vedere che i widget possono creare i link - sono solo fuori dalla mia profondità nel capire come sfruttare lo stesso concetto per creare un link senza visualizzare tutto.

1
Commenti

Dovresti pubblicare la tua soluzione come risposta

Pieter Goosen Pieter Goosen
20 mag 2014 17:54:03
Tutte le risposte alla domanda 1
0
11

Non è integrato nel core, ma è certamente possibile aggiungerlo, tuttavia - non lo considererei una buona idea avere un singolo post disponibile su più URL, quindi un reindirizzamento è probabilmente la soluzione migliore. Naturalmente, richiederà un po' di PHP, dato che WordPress non funziona con la magia o la forza di volontà.

Innanzitutto, colleghiamo una funzione all'azione parse_request, che viene eseguita quando WordPress sta determinando come impostare le variabili di query per la query principale.

Il seguente frammento di codice presuppone che i permalink personalizzati siano abilitati e che gli URL delle categorie abbiano una base di categoria. In queste condizioni, la variabile di query category_name è impostata, quindi possiamo verificare se si tratta di una richiesta per una categoria. Allo stesso tempo, controlliamo anche se è impostata una variabile GET latest, quindi insieme questo codice verrà attivato quando un URL appare così:

http://example.com/category/some-category/?latest

Se queste condizioni sono soddisfatte, eseguiamo una query per un singolo post nella categoria richiesta, tramite WP_Query, che per impostazione predefinita ci restituirà l'ultimo post in quella categoria.

Se viene trovato un post, reindirizziamo all'URL di quel post tramite wp_redirect.

Questo frammento di codice può essere inserito nel file functions.php del nostro tema:

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 gen 2014 04:34:45