在变量中声明<?php?>

时间:2016-01-28 作者:SLembas

我需要把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>

2 个回复
最合适的回答,由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";

SO网友:SLembas

现在它工作了。我非常感谢jgraup!

我所需要改变的就是添加$icon = $GLOBALS[$icon_var]; 并更改$menu_list jgraup建议的结构。甚至不需要第三方更改。

最终代码:

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);
        $icon = $GLOBALS[$icon_var];
        $title = $menu_item->title;
        $url = $menu_item->url;
        $menu_list.= "\\t\\t\\t\\t\\t<li><a class=\\"icon\\" href=\\"$url\\">$icon<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;
}

相关推荐

评论表单代码重定向到带有空白页的wp_Comments_post.php

单个帖子中的评论形式效果很好。然后,在添加一些定制之后,在发布评论之后,它会重定向到此链接wp\\u comments\\u post。带有空白页的php。这是我在注释中的代码。php那么,让它再次工作到底出了什么问题?<?php $form_args = array( \'fields\' => array( \'author\' => \' <form class="getin_form" id="p