AGGIORNAMENTO: La mia domanda originale è stata risolta, ma questo si sta trasformando in una discussione valida sul perché non usare le variabili globali, quindi sto aggiornando la domanda per riflettere ciò. La soluzione era <?php global $category_link_prop; echo esc_url( $category_link_prop ); ?>
come suggerito da @TomJNowell.
AGGIORNAMENTO 2: Ora ho fatto esattamente quello che volevo. Ma sto ancora usando l'ambito globale e sarei felice di trovare un modo migliore.
Sto cercando di impostare un sacco di variabili globali per i permalink alle categorie da utilizzare in vari punti del mio tema. Il motivo principale di ciò è da utilizzare sia nella navigazione principale, sia in una serie di navigazioni secondarie scelte in base alla categoria in cui si trova il post corrente. Questo non è un tema che rilascerò per l'uso da parte di altri, ma è costruito per uno scopo molto specifico.
Ecco come li sto attualmente creando (ho incollato solo alcune variabili).
function set_global_nav_var()
{
//proposal
global $prop;
// Get the ID of a given category
$category_id_prop = get_cat_ID( 'proposal' );
// Get the URL of this category
$category_link_prop = get_category_link( $category_id_prop );
$prop = '<a href="' .esc_url( $category_link_prop ). '" title="Proposal">Proposal</a>';
//Calvinball
global $cb;
// Get the ID of a given category
$category_id_cb = get_cat_ID( 'calvinball' );
// Get the URL of this category
$category_link_cb = get_category_link( $category_id_cb );
$cb = '<a href="' .esc_url( $category_link_cb). '" title="Calvinball">Calvinball</a>';
}
add_action( 'init', 'set_global_nav_var' );
Ora posso fare in <?php global $prop; echo $prop; ?>
4 posti che vanno e recuperare l'intero link per il codice. Quando ciò cambia, devo solo cambiarlo in un posto. Sono aperto a alternative che non coinvolgono l'ambito globale.