如果变量是字符串,我想返回一小段代码,但如果它是空的,则返回文本“no image”。
function link_img_preview( $atts, $content = null ) {
if ( is_string( $content ) ) {
$content = do_shortcode( str_replace( '###SPACE###', '', $content ) );
}
if ( is_string( $content ) == false ) {
$content = 'no image';
}
require_once('OpenGraph.php');
$graph = OpenGraph::fetch($content);
$return = '<img class="link-image" src=';
$return .= $graph->image;
$return .= '>';
return $return;
}
答案 0 :(得分:1)
无需过度复杂化。默认值$content = null
将评估为false,因此如果您不提供第二个参数,您将获得“无图像”。如果你传递一个空字符串,它将被评估为false,因此你将得到“没有图像”。如果你将一个不是字符串的东西传递给这个似乎期待字符串的函数,它会抛出一个错误,这似乎是一个合理的反应。
if ($content) {
$content = do_shortcode( str_replace( '###SPACE###', '', $content ) );
} else {
$content = 'no image';
}
答案 1 :(得分:0)
使用empty()
if(empty($yourstring))
{
//your code
}
代码:
function link_img_preview( $atts, $content = null ) {
if (!empty($content)) {
$content = do_shortcode( str_replace( '###SPACE###', '', $content ) );
}else{
$content = 'no image';
}
require_once('OpenGraph.php');
$graph = OpenGraph::fetch($content);
$return = '<img class="link-image" src=';
$return .= $graph->image;
$return .= '>';
return $return;
}
答案 2 :(得分:0)
检查$ content是否已经是一个字符串,但也检查字符串是否为空。像$a = "";
这样的东西也是一个字符串。
执行所需操作的代码如下
function link_img_preview( $atts, $content = null ) {
if ( !is_string( $content ) || empty ( $content) ) {
$content = 'no image';
} else {
$content = do_shortcode( str_replace( '###SPACE###', '', $content ) );
}
require_once('OpenGraph.php');
$graph = OpenGraph::fetch($content);
$return = '<img class="link-image" src=';
$return .= $graph->image;
$return .= '>';
return $return;
}
答案 3 :(得分:0)
另外,只需要一点点清洁,在src val
周围添加双引号$return = '<img class="link-image" src="';
$return .= $graph->image;
$return .= '" >';
(参见最后一行的"
)
答案 4 :(得分:0)
好的,看了你的例子,我意识到我一开始就错了。以下是最终为我解决的问题。非常感谢你的帮助!
function link_img_preview( $atts, $content = null ) {
require_once('OpenGraph.php');
if ( is_string( $content ) ) {
$content = do_shortcode( str_replace( '###SPACE###', '', $content ) );
}
$graph = OpenGraph::fetch($content);
if (!empty($graph->image)) {
$return = '<img class="link-image" src=';
$return .= $graph->image;
$return .= '>';
return $return;}
else{
return 'no image';
} }