我正在尝试在文本小部件中执行if条件。我把它添加到我的主题功能文件
function execute_php($html){
if(strpos($html,"<"."?php")!==false){
ob_start();
eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
} 的add_filter( 'widget_text', 'execute_php',100);
但是当我写这样的php条件时,它在第90行抛出一个错误eval(“?”。“?”。$ html)这里是确切的错误
解析错误:语法错误,/ functions.php(90)中的意外“{”:第13行的eval()代码
这是我写的条件
<?php if (is_post(43)) { ?>
<div class="book">
<a class="button" href="/product1">Buy Now</a>
</div>
<?php } elseif (is_post(37)) { ?>
<div class="book">
<a class="button" href="/product2">Buy Now</a>
</div>
<?php } elseif (is_post(30)) { ?>
<div class="book">
<a class="button" href="/product3">Buy Now</a>
</div>
<?php } else (is_post(24)) { ?>
<div class="book">
<h5>Buy Now</h5>
<select class="sportsman-colors" onchange="document.location.href=this.value">
<option value="-1" selected>Choose Color</option>
<option value="/product4">Green</option>
<option value="/product6">Red</option>
</select>
</div>
<?php } ?>
有人可以告诉我我在哪里弄错了。我正在关闭所有标签
由于
答案 0 :(得分:1)
如果你想将php代码执行到wordpress小部件,那么只需将以下代码更改为主题功能文件
add_filter('widget_text','execute_php',100);
function execute_php($html){
if(strpos($html,"<"."?php")!==false){
ob_start();
eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
}
您可以在http://www.helpersways.com/2015/09/use-php-code-in-wordpress-widget-without-plugin.html
上阅读更多信息答案 1 :(得分:0)
您可以使用像Widget Logic这样的插件,并在单独的文本小部件下添加is_post(24)
之类的条件
答案 2 :(得分:0)
你试图为else语句提供一个条件,else语句不接受条件,因为它只是作为最后的手段触发。
所以要么改变:
<?php } else (is_post(24)) { ?>
要:
<?php } elseif (is_post(24)) { ?>
如果条件为真,则会触发它,或者:
<?php } else { ?>
如果上述条件均不属实,则会触发它。