Qual è la differenza tra get_post_permalink e get_permalink?


11

Ho letto la documentazione get_post_permalink()e get_permalink()non capisco la differenza tra i due. Potrebbe essere perché non capisco lo scopo dei parametri $leavenamee $sample. Qualcuno può spiegarli, e quando una funzione sarebbe più utile dell'altra? Grazie!

Risposte:


6

La get_post_permalink()funzione recupera il collegamento a un post in base al collegamento "permanente" più le regole di riscrittura personalizzate che vengono modificate ?p=123ad es my-beautiful-sunday-diary. La get_permalink()funzione è più "base", ma anche più versatile in ciò che fa: Per una post_typedi

  • page, utilizza get_page_link()
  • attachment, utilizza get_attachment_link()
  • post, utilizza get_post_link()

Gestisce anche la visualizzazione di permalink di termtipo categorye data. Alla fine, sostituisce il link "pretty" nel tuo home_url()o restituisce semplicemente il link non elaborato se non sono state assegnate regole di riscrittura personalizzate. Infine collega un filtro generico:

/**
 * Filters the permalink for a post.
 *
 * Only applies to posts with post_type of 'post'.
 *
 * @since 1.5.0
 *
 * @param string  $permalink The post's permalink.
 * @param WP_Post $post      The post in question.
 * @param bool    $leavename Whether to keep the post name.
 */
return apply_filters( 'post_link', $permalink, $post, $leavename );

Spero che chiarisca l'argomento.

Suggerimento: se è necessario modificare i collegamenti permanenti in un plug-in, andare con i filtri specifici all'interno get_attachment_link(), get_post_link()ecc. Solo se si sta lavorando su un singolo sito e non si prevede di distribuire il codice o se si sta scrivendo un plug-in destinato solo alla riscrittura roba, quindi vai con il filtro generico sopra. Altrimenti annulli ogni sforzo degli autori del tema e inizierai una corsa prioritaria di richiamata.


2

Qualcun altro spiegherà sicuramente meglio di me. Come uso sologet_permalink()

Sono per lo più simili in quanto entrambi restituiscono il post permalink, get_permalinkusano get_post_permalink(per post_types) e possono essere filtrati. Sarà anche usato per recuperare un link alla pagina, un allegato ... dove get_post_permalinksembra essere dedicato a post_types.

MODIFICARE:

Per quanto riguarda l'uso di $leavename, sembra che non sia necessario un front-end (e persino nel back-end) in quanto restituisce la lumaca di permastruttura, in base al tipo di post del collegamento.

 echo get_permalink(123, true);

Restituisce lo schema di riscrittura per il collegamento che potrebbe essere utilizzato

Un post:

 http://example.com/%postname%/

Un prodotto:

 http://example.com/%product%/

$ leavename viene utilizzato in get_permalink () nell'array $ rewritecode e inserito come primo parametro nella riga delle funzioni 221

$permalink = home_url( str_replace($rewritecode, $rewritereplace, $permalink) );

Può essere utile scoprire la lumaca di riscrittura per un collegamento per uno sviluppatore (ma penso che ci sia un modo migliore per farlo)

Spero che qualcuno dia maggiori dettagli.


Grazie! Non sono ancora molto chiaro su questo però. Hai mai usato $ leavename per cambiare la struttura del permalink? Perché e come si dovrebbe farlo? E vuoi dire che get_post_permalink () è usato per recuperare archivi, o ti riferisci a get_permalink () lì? Non ho mai visto get_post_permalink () usato fino ad oggi quando l'ho incontrato e usato esattamente come get_permalink (), quindi non sono chiaro sulla differenza.
Michelle,

Sto parlando di get_permalink, ce l'hai nella fonte, recupera la pagina dell'autore, le categorie ecc ... Farà più di get_post_permalink. Get_permalink è una funzione modello se non sbaglio ed è potente.
Benoti,

Capito, non capisco quando avremmo mai avuto bisogno o volevamo usare get_post_permalink () - puoi fare un esempio di codice? E sai cosa fanno $ leavename e $ sample? Ho usato solo get_permalink () anche :-)
Michelle il

2
$leavenameviene utilizzato in admin per ottenere la struttura del permalink in modo che possa generare l'interfaccia che consente di modificare la lumaca di un post.
Milo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.