2014-05-02 39 views
0
<?php 
// Attributes 
extract(shortcode_atts(
    array(
     'postid' => '', 
     'ptitle' => '', 
    ), $atts) 
); 

$postid = $atts['postid']; 
$ptitle = $atts['ptitle']; 


if(!empty($ptitle)){ 
    echo 'Whoops! Looks like went wrong here!'; 
} 
else 
{ 
    if($postid == false) 
    { 
     echo '<span class="ptitle">$ptitle</span>'; 
    } 
    else 
    { 
     echo '<span class="ptitle"><a href="site.com/$postid">$ptitle</a></span>'; 
    } 
} 

我试图让我的代码工作做如下制作一个变量使用“如果”,并与空变量

  1. 显示错误消息,如果$ ptitle是空

(这是我需要帮助的地方)

2-如果另一个值是空的,它会回显这个<span class="ptitle">$ptitle</span>

3-如果其他价值($帖子ID)中有一些则呼应<span class="ptitle"><a href="site.com/$postid">$ptitle</a></span>

但是我就是不明白,足够的空值和“假”创建这个正确

+0

你需要回应这个'的 $ ptitle''如同'echo' $ ptitle';'因为你在PHP内部。然后为其他人做同样的事情。 –

+0

以及这个 - 哎呀!看起来在这里出错了! – Eddie

+0

另外,这是从'$ atts'填充? –

回答

2

如果你希望它显示,如果事情是“空”的,你使用了错误的方法与if(!empty($ptitle)){,你告诉它,如果它不是空的。

!是否定字符,翻译为not

您需要使用if(empty)

另外,虽然PHP内还需要echo

另一件事,你的$ptitle不会在单引号内回显。

使用以下命令:

旁注:你可能想改变if($postid == false)if($postid == true)

<?php 
// Attributes 

    extract(shortcode_atts(
     array(
      'postid' => '', 
      'ptitle' => '', 
     ), $atts) 
    ); 

$postid = $atts['postid']; 
$ptitle = $atts['ptitle']; 


    if(empty($ptitle)){ 
     echo "Whoops! Looks like went wrong here!"; 
     }else{ 
     if($postid == false) { 
      echo "<span class=\"ptitle\">$ptitle</span>"; 
     } else { 
      echo "<span class=\"ptitle\"><a href=\"site.com/$postid\">$ptitle</a></span>"; 
     } 
     } 

你还可以尝试:

<?php 
// Attributes 
    extract(shortcode_atts(
     array(
      'postid' => '', 
      'ptitle' => '', 
     ), $atts) 
    ); 

$postid = $atts['postid']; 
$ptitle = $atts['ptitle']; 

    if(empty($ptitle)){ 
     echo "Whoops! Looks like went wrong here!"; 
     } 

     if(empty($postid)) { 
      echo "<span class=\"ptitle\">$ptitle</span>"; 
     } 

     if(!empty($postid)) { 
      echo "<span class=\"ptitle\"><a href=\"site.com/$postid\">$ptitle</a></span>"; 
     } 
+0

我知道这已经有一段时间了,因为我问了这个,但希望你能回答这个问题。我注意到你在“之前添加了\”,你能告诉我为什么或者这个名字能够谷歌吗? – user51030

+0

@ user51030它被称为使用\字符转义,有时最好在浏览器中传递''' 。然而,JS需要在'alert'中使用''''作为例子。使用'''而不是'\''在PHP中基本做同样的工作,但是如果用在JS中会导致错误。 –

+0

@ user51030作为一个附加示例。 '''''''''''''''''''''''''''''''''''''''' quoted echo会引发错误,使用'echo' $ ptitle“;'不会,并且会起作用。 –

0

我是noob,但我认为你的''缺少字回声之前,你想要显示的字符串和删除签署

是这样的:

$postid = $atts['postid']; 
    $ptitle = $atts['ptitle']; 


if(empty($ptitle)){ 
    echo "Whoops! Looks like went wrong here!" 
    }else{ 
    if($postid == false) { 
    echo "<span class="ptitle">$ptitle</span>" 
    } else { 
    echo "<span class="ptitle"><a href=site.com/".$postid.">".$ptitle".</a></span>" 
} 
} 
0

看看这对你的作品

if(empty($ptitle)){ 
    echo 'Whoops! Looks like went wrong here!'; 
} else if (empty($postid)) { 
    echo "<span class='ptitle'>$ptitle</span>"; 
} else { 
    echo "<span class='ptitle'><a href='site.com/$postid'>$ptitle</a></span>"; 
}