ATUALIZAÇÃO: Minha pergunta original foi resolvida, mas isso está se transformando em uma discussão válida sobre por que não usar variáveis globais, por isso estou atualizando a questão para refletir isso. A solução foi <?php global $category_link_prop; echo esc_url( $category_link_prop ); ?>
como o @TomJNowell sugeriu.
ATUALIZAÇÃO 2: Agora eu faço exatamente o que eu queria. Mas ainda estou usando o escopo global e ficaria feliz em encontrar uma maneira melhor.
Estou tentando configurar um monte de variáveis globais para os links permanentes para categorias a serem usadas em vários lugares no meu tema. A principal razão para isso é o uso na navegação principal e em uma série de sub-navegações escolhidas com base em qual categoria a postagem atual se encontra. Esse não é um tema que lançarei para uso por outras pessoas, mas é construído para um propósito muito específico.
É assim que os estou criando atualmente (colei apenas algumas das variáveis).
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' );
Agora eu posso fazer <?php global $prop; echo $prop; ?>
int ele 4 lugares que vai e voltar todo o link para o código. Quando isso muda, só preciso mudar em um só lugar. Estou aberto a alternativas que não envolvem o escopo global.