UPDATE: Meine ursprüngliche Frage wurde gelöst, aber dies wird zu einer gültigen Diskussion darüber, warum keine globalen Variablen verwendet werden sollten. Ich aktualisiere die Frage daher, um dies widerzuspiegeln. Die Lösung war <?php global $category_link_prop; echo esc_url( $category_link_prop ); ?>
wie @TomJNowell vorgeschlagen.
UPDATE 2: Ich habe jetzt genau das getan, was ich wollte. Aber ich benutze immer noch globale Möglichkeiten und würde gerne einen besseren Weg finden.
Ich versuche, eine ganze Reihe globaler Variablen für die Permalinks zu Kategorien einzurichten, die an verschiedenen Stellen in meinem Thema verwendet werden sollen. Der Hauptgrund dafür ist die Verwendung sowohl in der Hauptnavigation als auch in einer Reihe von Unternavigationen, die anhand der Kategorie ausgewählt werden, in der sich der aktuelle Beitrag befindet. Dies ist kein Thema, das ich für die Verwendung durch andere freigeben werde. sondern ist für einen ganz bestimmten Zweck gebaut.
So erstelle ich sie gerade (ich habe nur einige Variablen eingefügt).
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' );
Ich kann jetzt an den <?php global $prop; echo $prop; ?>
4 Stellen, die gehen und den gesamten Link für den Code zurückbekommen. Wenn sich das ändert, muss ich es nur an einer Stelle ändern. Ich bin offen für Alternativen, die nicht den globalen Geltungsbereich betreffen.