我需要把PHP<?php global $\' . $icon_var . \'; echo $\' . $icon_var . \'; ?>
在自定义菜单结构的变量中,但它会被注释:
<a href="http://slembas.esy.es/">
<!--?php global $icon_home; echo $icon_home; ?-->
<span>Page Name</span>
</a>
变量说明:
$icon_var
- 从自定义输入获取值_menu_custom_item
我写变量时没有$
其中包含SVG代码,以使菜单项更具有图标色彩。
function sidebar_menu() {
$menu_name = \'sidebar_pages\';
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menu_items = wp_get_nav_menu_items( $menu->term_id );
$menu_list = \'<nav>\' . "\\n";
$menu_list .= "\\t\\t\\t\\t" . \'<ul>\' . "\\n";
foreach ( (array) $menu_items as $key => $menu_item ) {
$icon_var = get_post_meta( $menu_item->ID, \'_menu_item_custom\', true );
$title = $menu_item->title;
$url = $menu_item->url;
$menu_list .= "\\t\\t\\t\\t\\t" . \'<li><a href="\' . $url . \'"><?php global $\' . $icon_var . \'; echo $\' . $icon_var . \'; ?><span>\' . $title . \'</span></a></li>\' . "\\n";
}
$menu_list .= "\\t\\t\\t\\t" . \'</ul>\' . "\\n";
$menu_list .= "\\t\\t\\t" . \'</nav>\' . "\\n";
}
else {
// $menu_list = \'<!-- no list defined -->\';
}
echo $menu_list;
}
所需的输出应如下所示:
<li>
<a href="/" class="icon" title="Главная">
<svg style="width:24px;height:24px" viewBox="0 0 24 24">
<path fill="#000000" d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"></path>
</svg>
<span>Главная</span>
</a>
</li>
最合适的回答,由SO网友:jgraup 整理而成
你需要打电话global $variable;
在使用变量之前。请为该行尝试下面的代码。
// setup your global scope here
global $icon_var;
// set the new value in global scope
$icon_var = get_post_meta($menu_item->ID, \'_menu_item_custom\', true);
// then use the variable
$menu_list .= "\\t\\t\\t\\t\\t<li><a href=\\"$url\\">$icon_var<span>$title</span></a></li>\\n";
如果在
global 变量,现在您希望使用动态名称引用访问它,然后使用
$GLOBALS 直接地
// \'icon_home\' set as global
global $icon_home;
$icon_home = \'<svg style="width:24px;height:24px" viewBox="0 0 24 24"> <path fill="#000000" d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"></path></svg>\';
// variable name retrieved dynamically
// \'icon_home\';
$icon_var = get_post_meta($menu_item->ID, \'_menu_item_custom\', true);
$icon = $GLOBALS [$icon_var];
// output icon
echo "\\t\\t\\t\\t\\t<li><a href=\\"$url\\">$icon<span>$title</span></a></li>\\n";