Wordpress插件返回页面

时间:2016-02-22 21:10:59

标签: php wordpress

我在使用一个PHP语句与WordPress一起工作时遇到了问题 基本上,我想要的是:

  • 根据用户选择返回输出

现在我已经成功地完成了大部分工作,但是当我尝试将PHP代码从我的插件返回到wordpress时,它会立即被注释掉。
  这是我正在使用的函数的代码。

function display($type, $status) {
$html ='';
if($type == null) {
    $html = "<?php echo do_shortcode[contact-form-7 id='7' title='Campaign monitor']');?>";
}else if($type == "ios") {
    if ($status == "y") 
    $html = "IOS";
}else if($type == "android") {
    if ($status == "y") 
    $html = "ANDROID";
}
echo $html;

}

因此,您可以看到取决于所选择的内容,例如

 <?php echo display(ios, y); ?>

它在我的网站上显示IOS,但是当类型为空时,事情会变得有趣,例如

 <?php echo display(); ?>

返回以下内容

<!--?php echo do_shortcode[contact-form-7 id='7' title='Campaign monitor']');?-->

Straightaway我的PHP被注释掉了,我无法做任何事情让它运转起来 虽然,我确实理解这不是最好的做法(通过返回原始的PHP)我没有其他办法做到这一点。

无论如何都要克服这个问题吗? 我已经尝试过EXEC-PHP插件以及用于帖子和页面插件的PHP代码。

2 个答案:

答案 0 :(得分:1)

试试这个,因为它有助于减少代码,并帮助功能更清晰。它假定如果上面未列出设备类型,则表示您要显示默认情况。它假设如果你的设备没有列出,在这种情况下,除了android和ios之外,它应该显示默认情况,这是你的CF7短代码。如果您想指定其他选项,则需要完成上述“默认”。正如其他地方的评论所述,这是PHP,所以它是服务器端处理..

<?php 
function display($type, $status){
    switch ($type){
        case "ios":
            $html = "IOS";
            break;
        case "android":
            $html = "Android";
            break;
        default:
            $html = "do_shortcode[contact-form-7 id='7' title='Campaign monitor']";
            break; 
    }
    if($status == "active"){
        echo $html;
    }
}
?>

答案 1 :(得分:1)

不确定你想要的效果是什么,但你是从do_shortcode中将字符串保存到html中。我假设你正在混淆php解析双引号内的变量与正在解析的函数。不是这样。这应该是你正在寻找的。

function display($type, $status) {
    $html ='';
    if($type == null) {
        $html = do_shortcode('[contact-form-7 id="7" title="Campaign monitor" ]');
    }else if($type == "ios") {
        if ($status == "y") 
        $html = "IOS";
    }else if($type == "android") {
        if ($status == "y") 
        $html = "ANDROID";
    }
    echo $html;

}