ОНОВЛЕННЯ: Моє оригінальне запитання вирішено, але це перетворюється на обґрунтовану дискусію про те, чому б не використовувати глобальні змінні, тому я актуалізую питання, щоб це відобразити. Рішення було <?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 місця, які можна отримати, і отримати повне посилання на код. Коли це змінюється, мені потрібно змінити його лише в одному місці. Я відкритий до альтернатив, які не передбачають глобальної сфери.