ОБНОВИТЬ: Мой первоначальный вопрос был решен, но это превращается в полноценную дискуссию о том, почему бы не использовать глобальные переменные, поэтому я обновляю вопрос, чтобы отразить это. Решение было таким, <?php global $category_link_prop; echo esc_url( $category_link_prop ); ?>
как предложил @TomJNowell.
ОБНОВЛЕНИЕ 2: меня теперь есть то, что я хотел. Но я все еще использую глобальные возможности и был бы рад найти лучший способ.
Я пытаюсь установить целую кучу глобальных переменных для постоянных ссылок на категории, которые будут использоваться в разных местах моей темы. Основной причиной этого является использование как в основной навигации, так и в серии вспомогательных переходов, которые выбираются в зависимости от категории, к которой относится текущая запись. Это не тема, которую я буду выпускать для использования другими, но построен для одной очень конкретной цели.
Вот как я сейчас их создаю (я вставил только несколько переменных).
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' );
Теперь я могу сделать это в <?php global $prop; echo $prop; ?>
4 местах и получить всю ссылку на код. Когда это изменится, мне нужно только изменить его в одном месте. Я открыт для альтернатив, которые не связаны с глобальным охватом.