web-dev-qa-db-ja.com

現在のユーザーにURLの投稿を許可する

私はフォーラムを巡回してきましたが、これに対する解決策を見つけることができません。だれでも手伝うことができれば、それは大歓迎です!現在のユーザーの作成者ページへのリンクを表示しようとしています(すべてのユーザーに作成者権限があります)。私は今これを使っています:

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

問題は、ログインしているユーザーがいない場合に作成者リンクが表示されることです。ログインしているユーザーにのみ作成者リンクを表示するにはどうすればよいですか。

2
mr_bythatmuch

あなたのコードが正しく動作していて、唯一の問題は誰もログインしていないときに表示されるということですそれでは以下のコードを試してみてください。今、あなたは「Hey WPがちょうどこれをエコーアウトしている」と言っているからです - それはそうです。次のように変更する必要があります。 "Hey WP"ユーザーがログインしている場合は自分のページへのリンクを表示し、ログインしていない場合はログインリンクを表示しません)

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

スペースを使用したユーザー名の問題に対処するために、このコードを試すことができます。

<?php
    if ( is_user_logged_in() ) {
        global $current_user;
        get_currentuserinfo();
        echo '<a href="' . get_author_posts_url($current_user->ID) . '"> My personal page</a>';
    } else {
        echo '<a href="' . wp_login_url() . '" title="Login">Login</a>';
    }
?>

参照:

3
Borek

@ user45381著者ページを取得するには、 get_author_posts_url および is_user_logged_in を使用する必要があります。

あなたはこれを成し遂げるために以下を使用することができます: -

<?php
    if ( is_user_logged_in() ) {
        echo '<a href="' . get_author_posts_url( get_current_user_id() ) . '"> My personal page</a>';
    } else {
        echo '<a href="' . wp_login_url() . '" title="Login">Login</a>';
    }
?>
0
Maruti Mohanty