URL to Post Meta

时间:2017-06-14 作者:Tim44

我试图仅在WordPress用户登录时显示他们的Web链接。如果他们注销,他们将看到文本,说明他们需要“登录查看”

我的原始代码

<a href="<?php echo get_post_meta($post_id, \'external_link\', true); ?>">View Website</a>
我修改过的代码

    <a href="<?php
if ( is_user_logged_in() ) {
    echo get_post_meta($post_id, \'external_link\', true);
} else {
    echo \'Login to View\';
}
?>">View Website</a>
当用户登录时,它正在做它应该做的事情,但当他们注销时,url被破坏。是否有人可以发布一个格式的例子,说明应该这样做?

2 个回复
SO网友:hwl

您发布的代码:

 <a href="<?php
    if ( is_user_logged_in() ) {
        echo get_post_meta($post_id, \'external_link\', true);
    } 
    else {
        echo \'Login to View\';
    }
   ?>
 ">View Website</a>
将响应“登录查看”作为href 属性

您需要更多类似于:

    <a href="<?php
        if ( is_user_logged_in() ) {
           echo get_post_meta($post_id, \'external_link\', true);
        } 
       else {
          echo wp_login_url( get_permalink() );
}
?>">View Website</a>
这当然不会改变文本,只是href. 因此,也许可以更早地执行条件步骤(我添加了一个任意<span> 对于上下文):

<span> 
<?php 
if ( is_user_logged_in() ) {
   $href = esc_url( get_post_meta($post_id, \'external_link\', true ) );
   $text = \'View Website\'; 
}
else {
    $href = wp_login_url( get_permalink() );
    $text = \'Login to View\';
}
?>
<a href="<?php echo $href; ?>" ><?php echo $text; ?></a>
</span>
由于您正在从数据库中提取url,因此我将其包装在 esc_url() for sanitization.

SO网友:Abdul Awal Uzzal

以下是您需要的:

<?php
if ( is_user_logged_in() ) {
    echo \'<a href="\'.get_post_meta($post_id, \'external_link\', true).\'">View Website</a>\';
} else {
    echo \'<a href="\'.wp_login_url(get_permalink()).\'">Login to view Website</a>;
}
?>

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在