在PHP中转义不起作用

时间:2013-07-16 13:53:18

标签: php wordpress escaping echo

我在Wordpress中有这个代码段:

<?php if ( is_user_logged_in() ) {
      echo " <span class=blabla>
<a href="<?php echo home_url() . '/author/' . get_the_author_meta( 'user_login', wp_get_current_user()->ID ); ?>" >My personal page</a>

        </span> "; } ?>

因为它有两个echo,我使用了这个:

<?php if ( is_user_logged_in() ) {
      echo " <span class=blabla>
<a href=\"home_url() . '/author/' . get_the_author_meta( 'user_login', wp_get_current_user()->ID ); \" >My personal page</a>

        </span> "; } ?>

由于某种原因,它不起作用。我做错了什么?

5 个答案:

答案 0 :(得分:1)

为了使其可读,将PHP与HTML分开并拆分长行

<?php if ( is_user_logged_in() ) { 
    $url  = home_url() . '/author/'; 
    $url .= get_the_author_meta( 'user_login', wp_get_current_user()->ID );
?>
<span class=blabla>
    <a href="<?php echo $url ?>">My personal page</a>
</span>
<? } ?>

答案 1 :(得分:1)

试试这个:

<?php if ( is_user_logged_in() ) : ?>
    <span class="blabla">
        <a href="<?php echo home_url( '/author/' . get_the_author_meta( 'user_login', get_current_user_id() ) ) ?>">My personal page</a>
    </span>
<?php endif; ?>

答案 2 :(得分:0)

您需要在home_url()之前关闭字符串,并在.

中的concat运算符->ID ).后面加引号
<?php if ( is_user_logged_in() ) {
  echo " <span class=blabla>
<a href=\"".home_url() . '/author/' . get_the_author_meta( 'user_login', 
    wp_get_current_user()->ID )." \" >My personal page</a>
    </span> "; } ?>

答案 3 :(得分:0)

那里有一些语法错误。

<?php
if ( is_user_logged_in() ) {
    echo "<span class=blabla>"
       . "<a href=\"" . home_url() . "/author/"
       . get_the_author_meta('user_login', wp_get_current_user()->ID)
       . "\" >My personal page</a></span> "; 
}

要仔细检查文件是否有错误,请在命令行中运行:

php -l [filename]

它应该返回

No syntax errors detected in [filename]

答案 4 :(得分:-1)

尝试:

<?php if ( is_user_logged_in() ) {
      echo ' <span class="blabla"><a href="'.home_url() . '/author/' . get_the_author_meta( "user_login", wp_get_current_user()->ID ).'>My personal page</a></span> '; } 
?>