-1

我有这个片段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> "; } ?>

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

4

5 回答 5

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>
<? } ?>
于 2013-07-16T14:01:40.437 回答
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; ?>
于 2013-07-16T14:03:48.250 回答
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> "; } ?>
于 2013-07-16T13:56:43.957 回答
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]
于 2013-07-16T13:59:47.487 回答
-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> '; } 
?>
于 2013-07-16T13:58:42.767 回答