サポート » テーマ » single.phpの一部分を投稿者別に切り替えたい

  • このたびはお世話になります。

    個別投稿ページ(single.php)の一部分を投稿者別に切り替えたいと思っています。

    具体的には「投稿者A」が投稿した個別投稿ページには

    <p>この記事はリンゴが大好きな「投稿者A」によって投稿されています</p>

    「投稿者B」が投稿した個別投稿ページには

    <p>この記事はバナナが大好きな「投稿者B」が書きました</p>

    などのように一部分の内容を投稿者ごとによって変えたいのです。

    検索したところほとんど該当する情報がなく、一番近いと感じた
    http://ja.forums.wordpress.org/topic/35
    こちらの情報をもとに

    <?php elseif ( is_author('1')): ?>
    1
    <?php elseif ( is_author('2')): ?>
    2
    <?php elseif ( is_author('3')): ?>
    3
    <?php else: ?>
    その他
    <?php endif; ?>

    上記のタグをsingle.phpで使ってみたのですが、エラーになってしまいうまくいかず。

    皆さまのお知恵をお貸しいただければ幸いです。
    どうぞよろしくお願いいたします。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • こんにちは

    一番最初の、elseif を if に変更すれば、いいんじゃないかと思います。

    トピック投稿者 webyasan

    (@webyasan)

    nobita様

    早速のご回答、誠にありがとうございました。

    アドバイスいただいた通り以下のコードで試してみました。

    <?php if ( is_author('1')): ?>
    投稿者AAAAAA
    <?php elseif ( is_author('2')): ?>
    投稿者BBBBBB
    <?php elseif ( is_author('3')): ?>
    投稿者CCCCCC
    <?php else: ?>
    その他
    <?php endif; ?>

    しかしながら、投稿者ID1や投稿者ID2が投稿した個別投稿ページを見ても、
    「その他」が表示されてしまいます。

    どのような原因が考えられますでしょうか?

    引き続きとなりますが、お知恵をお貸しいただければ幸いです。
    どうぞよろしくお願いいたします。

    is_author() は、投稿者アーカイブかどうかをチェックする関数です。
    個別投稿ページ(single.php)において、is_author() は、引数が何であれ常に false が返ってきます。なので全部「その他」になります。

    モデレーター gatespace

    (@gatespace)

    Twenty Eleven の content-single.php
    個別投稿ページで
    「プロフィール情報が入力されていてかつ複数のユーザーが投稿している」という条件で
    ユーザーの情報を表示している部分があります。

    あらかじめユーザーのプロフィール情報に表示したいテキストを入れておいて、
    それを the_author_meta() で出力するのが一番簡単ですが。

    使い方はCodex等読んでくださいね。

    トピック投稿者 webyasan

    (@webyasan)

    pluto1234様

    ご回答ありがとうございました。
    なるほど、そもそも使おうとしていた関数が間違えていたのですね。

    そうしますと今回の用途に使えそうな関数をご存知でしたらお教えいただければ幸いです。

    gatespace様

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

    プロフィール情報は別の用途にすでに利用しておりまして…。

    引き続き、
    「個別投稿ページ(single.php)の一部分を投稿者別に切り替える方法」について
    皆さまのお知恵をお貸しいただければ幸いです。

    どうぞよろしくお願いいたします。

    モデレーター gatespace

    (@gatespace)

    私の書き込んだリンク先読みました?
    同じ関数でユーザーID取れますよ。
    あとはそれで条件分岐すればいいのでは?

    トピック投稿者 webyasan

    (@webyasan)

    gatespace様

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

    大変申し訳ございません。
    お教えいただいた content-single.php ファイルも確認したのですが、
    何分まだWordPressのカスタマイズに関する知識に乏しく、
    せっかくお教えいただいた情報を応用することが出来ませんでした。

    もしよろしければ具体的なコードをお教えいただくことはできませんでしょうか?
    (失礼でなければ微々たる額ですがお礼もさせていただきます。連絡先はgatespace様のサイトで公開されていますか?)

    引き続きとなりますがどうぞよろしくお願いいたします。

    モデレーター gatespace

    (@gatespace)

    【重要】 お読みくださいの「質問ルール」読んでください。
    有料サポートを要求する投稿は禁止事項です。

    ある程度自分でやってみて「こうしたけどできなかった」という質問の方が回答つきやすいですよ。

    厳しい事書くようですが、自分で調べたり手を動かしたりやってみないと身につきません。
    丸投げしないでがんばってください。

    トピック投稿者 webyasan

    (@webyasan)

    gatespace様

    大変申し訳ございませんでした。質問ルールを細かく理解しておりませんでした。
    今後注意いたします。

    普段は少しずついろいろと試してWPのカスタマイズについて覚えているのですが
    今回は諸事情により急ぎのため直接具体的なコードをお教えいただければ…
    と思っておりました。

    引き続きとなりますがどうぞよろしくお願いいたします。

    今回は諸事情

    であれば、以下を試してみてください。

    <?php if ( get_the_author_meta('ID' ) == 1 ): ?>
    投稿者AAAAAA
    <?php elseif ( get_the_author_meta('ID' ) == 2 ): ?>
    投稿者BBBBBB
    <?php elseif ( get_the_author_meta('ID' ) == 3 ): ?>
    投稿者CCCCCC
    <?php else: ?>
    その他
    <?php endif; ?>

    @see
    http://codex.wordpress.org/Function_Reference/get_the_author_meta
    http://elearn.jp/wpman/function/get_the_author_meta.html

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「single.phpの一部分を投稿者別に切り替えたい」には新たに返信することはできません。