サポート » 使い方全般 » 寄稿者ユーザーの投稿記事に、ユーザー情報が表示されるようにしたい

  • 解決済 satochan

    (@satochan)


    現在、寄稿者ユーザーからの投稿を受け付けるポータルサイトを構築中なのですが、
    一点教えていただきたいことがございます。

    今の設定(デフォルト設定)では、寄稿者ユーザーが記事を投稿したときに、
    その記事にはユーザーのプロフィール情報(ユーザー名、写真)が表示されないように
    なっています。

    私がいまやりたいことは、
    寄稿者ユーザーが記事を投稿時に、

    その記事の上部に、プロフィールで設定した、
    寄稿者ユーザー名(ブログ上での表示名)と、ユーザー写真(User Photo プラグインでアップロード)が表示されるようにしたいです。
    *ユーザー名をクリックすると、プロフィールで設定したウェブサイトに飛ぶようにしたいです。

    これを実現するにはどうすればよいか教えていただけますと幸いです。
    よろしくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全20件中)
  • satochanさん、こんばんは。

    ちょっと合ってるかどうか不安ですが、以下の様な感じで記事の投稿ユーザのIDを元にユーザ情報を取得して実現できないでしょうか。
    ちなみに、User Photoプラグインはバージョン 0.9.5.2 をWordPress3.4.2に入れてみたところ、デバッグモードで警告が出たので個人的にはお勧めしません。

    <?php while ( have_posts() ) : the_post(); ?>
    	<?php
    	// 記事を投稿した人のユーザIDからユーザ情報の取得
    	$user = new WP_User( get_the_author_meta( 'ID' ) );
    
    	// 寄稿者だったら表示名及び写真を出力
    	if( in_array( 'contributor', $user->roles ) ) {
    		echo 'この記事は"' . $user->display_name . '"さんが投稿しました。';
    		userphoto_the_author_photo();
    	}
    	?>
    <?php endwhile; ?>

    Class Reference/WP User « WordPress Codex
    Function Reference/get the author meta « WordPress Codex

    トピック投稿者 satochan

    (@satochan)

    Tuyoshiさん、

    ありがとうございます。たすかります。

    今、functions.phpのほうへコピーしてみたのですが、エラーが出てしまいます。。

    私自身、WordPress初心者、かつ、コードをかけないものなので、
    上記の私のアクションについて、間違っていましたらご指摘いただけますと大変助かります。

    お手数ですが、何卒よろしくお願い申し上げます。

    提示したコードはテーマのテンプレートファイルに書くものであり、投稿を表示するループも書いてますので、どのようにされたか分かりませんがそのままfunctions.phpに貼り付けますと動かないと思います。

    例えば上記の例をそのまま書くとしたらsingle.phpとかですね。
    しかし既存のループの中に貼り付けないようにご注意下さい。

    <?php while ( have_posts() ) : the_post(); ?>
    が投稿ループの開始であり

    <?php endwhile; ?>
    の部分が投稿ループの終了部分です。

    初心者ユーザ様とのことで、手前味噌ですが以下も参考にされてみて下さい(functions.phpについては記載しておりませんが)。
    WordPress初心者テーマ作成勉強会

    トピック投稿者 satochan

    (@satochan)

    Tsuyoshiさん、ありがとうございます。

    single.phpにコードを入れたあと、

    実際に、寄稿者ユーザー(ユーザーのウェブサイト設定済)から投稿して確認して
    みたところ、動作したのですが、以下の現象が確認できました。

    写真と名前が出てきたのですが、

    写真と名前が、記事の上ではなく、サイトのヘッダーのところにでてきて
    しまいました。

    また、名前にはリンクが張られていませんでした。

    こちらのほうで不手際がありましたら、ご教示いただけますと幸いです。

    表示位置はコードを挿入した位置によってHTMLの出力も当然変わりますので、ヘッダーの上に書いてるのだと思います。

    リンクは提示した例では貼っておりません。
    しかし取得したユーザ情報から引っ張ってくることは可能だと思います。

    先ずは表示位置の件を頑張ってみてください。

    コードを入れた場所は表示させたい場所に貼付けたんでしょうか?

    自分できちんと考察しないでは、せっかくのアドバイスは活かせません。
    フォーラムで回答してくれる人たちは一日張り付いてみてるわけではないんで
    自分でカスタマイズしたいのなら、自分でよく噛み砕いてから再質問した方がいいですよ。

    一つ補足です。

    しかし既存のループの中に貼り付けないようにご注意下さい。

    と書きましたがループの中に二重でループを書かないでねという意味で、ユーザー情報出力の部分は書けますので、そと辺りはWordPressの基本を先ずは勉強されると良いと思います。

    トピック投稿者 satochan

    (@satochan)

    Tsuyoshiさん、

    親切にありがとうございます! 挿入したいところに入れることができました!!
    少しづつ理解できるようになってきました。

    http://665-667.com/2009/12/18/143149

    リンクの関しては、まさに上記のURLに書いていることをやりたいのですが、

    ‘<?php if (get_the_author_url()) { ?><あ href=”<?php the_author_url();?>”><?php the_author_nickname();?></あ><?php } else { the_author_nickname(); } ?>’

    を、Single.phpに入れてみたのですが、

    ‘この記事は”●●”さんが書きました。<あ href=”プロフィールのウェブサイトのURL/”>ニックネーム’

    という表記なり、寄稿者ユーザーのところにリンクが貼られません。

    どこか、変更が必要なところがあるのでしょうか。。
    お知恵をいただけますと幸いです。
    (なぜ、”あ”というひらがなが入っているか理解できません)

    済みません、きちんと読んではいませんが転載サイト含めて書いているコードが間違っているのでは?
    単なるタイプミスだと思うのですが(あではなくa)。

    <あ href〜とか書いてるためタグとして認識されていないのでそのまま表示されているだけでは?と思うのですがどうでしょうか。

    トピック投稿者 satochan

    (@satochan)

    Tsuyoshiさん、

    ありがとうございます。”あ”は”a”でした。

    aにすることによって、

    この記事は”●●”さんが書きました。<あ href="プロフィールのウェブサイトのURL/">ニックネーム

    という表記が、

    この記事は”●●”さんが書きました。【写真】 ”●●”

    となり、右側の”●●(ニックネーム)”にだけウェブサイトへのリンクが
    貼られました。

    欲を言いますと、左側の”●●”にリンクが貼られるようにしたいのですが、、
    もし可能であれば、コード変更の仕方をご教示いただけますと大変助かります。

    ここでコードを教えてしまうのは簡単ですが、どこのコードがどこに表示されてるかを考えれば、どこを変えれば良いか分かってくるんじゃないかと思います。

    トピック投稿者 satochan

    (@satochan)

    ありがとうございました。

    一応タグっぽい書き方に直したのでこちらの方が分かりやすいかも知れません。
    後はご自身で頑張ってみてくださいね。

    <?php while ( have_posts() ) : the_post(); ?>
    
        <?php // 記事を投稿した人のユーザIDからユーザ情報の取得 ?>
        <?php $user = new WP_User( get_the_author_meta( 'ID' ) ); ?>
    
        <?php // 寄稿者だったら表示名を出力 ?>
        <?php if( in_array( 'contributor', $user->roles ) ) : ?>
            この記事は"<?php echo $user->display_name ?>"さんが投稿しました。
            <?php userphoto_the_author_photo(); ?>
       <?php endif; ?>
    <?php endwhile; ?>
    トピック投稿者 satochan

    (@satochan)

    Tsuyoshiさん、

    大きなヒントをいただき、ありがとうございました!
    チャレンジしてみます。

    トピック投稿者 satochan

    (@satochan)

    Tsuyoshiさん、

    上記の件、まだ格闘中です。
    かなりいい線まで行っていると思うのですが、

    <?php get_the_author_url(); ?>“>

    を下記のように追加すると、”ユーザー名”だけではなく、
    【”ユーザー名”さんからの投稿】←全体にリンクが貼られてしまいます。

    ”ユーザー名”だけにリンクを貼るようにするためのヒントをいただけると
    大変助かります。

    <?php while ( have_posts() ) : the_post(); ?>
    
        <?php // 記事を投稿した人のユーザIDからユーザ情報の取得 ?>
        <?php $user = new WP_User( get_the_author_meta( 'ID' ) ); ?>
            <?php get_the_author_url(); ?><a href="<?php the_author_url();?>">
    
        <?php // 寄稿者だったら表示名を出力 ?>
        <?php if( in_array( 'contributor', $user->roles ) ) : ?>
            "<?php echo $user->display_name ?>"さんからの投稿
            <?php userphoto_the_author_photo(); ?>
       <?php endif; ?>
    <?php endwhile; ?>
15件の返信を表示中 - 1 - 15件目 (全20件中)
  • トピック「寄稿者ユーザーの投稿記事に、ユーザー情報が表示されるようにしたい」には新たに返信することはできません。