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 todavía estoy usando el alcance global y estaría encantado de encontrar una mejor manera.
Estoy tratando de configurar un montón de variables globales para que los enlaces permanentes a categorías se utilicen en varios lugares de mi tema. La razón principal de esto es su uso tanto en la navegación principal como en una serie de subnavegaciones que se eligen en función de la categoría en la que se encuentra la publicación actual. Este no es un tema que lanzaré para que otros lo utilicen, pero está construido 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 en los <?php global $prop; echo $prop; ?>
4 lugares que van y recuperar todo el enlace para el código. Cuando eso cambia, solo necesito cambiarlo en un lugar. Estoy abierto a alternativas que no involucran el alcance global.