ACTUALIZACIÓN: Mi pregunta original se ha resuelto, pero esto se está convirtiendo en una discusión válida sobre por qué no usar variables globales, por lo que estoy actualizando la pregunta para reflejar eso. La solución fue <?php global $category_link_prop; echo esc_url( $category_link_prop ); ?>
como sugirió @TomJNowell.
ACTUALIZACIÓN 2: Ahora tengo que hacer exactamente lo que quería. Pero sigo usando el alcance global y me encantaría encontrar una mejor manera.
Estoy tratando de configurar un montón de variables globales para los enlaces permanentes a las categorías que se utilizarán en varios lugares de mi tema. La razón principal de esto es para su uso tanto en la navegación principal como en una serie de subnavegaciones que se eligen según la categoría en la que se encuentra la publicación actual. Este no es un tema. se lanzará para el uso de otros, pero está diseñado para un propósito muy específico.
Así es como los estoy creando actualmente (solo he pegado algunas de las variables).
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' );
Ahora puedo hacer <?php global $prop; echo $prop; ?>
int he 4 lugares que van y recuperar todo el enlace para el código. Cuando eso cambie solo necesito cambiarlo en un lugar. Estoy abierto a alternativas que no involucren el alcance global.