更新:我原来的问题已经解决,但是这变成了关于为什么不使用全局变量的有效讨论,因此我正在更新问题以反映这一点。解决方案<?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个地方,并取回代码的整个链接。当这种变化发生时,我只需要在一个地方进行更改。我愿意接受不涉及全球范围的替代方案。