WordPressについて質問です。


Wordpressにて一般の人がユーザー登録をし、投稿、自分の記事の編集などを出来るようにしました。
ここまではWordPressの機能です。

プラグインにて、各投稿者と管理者にのみ閲覧者からメールを送ることが出来るメールフォームなどはありますでしょうか?

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:
  • 終了:2011/05/21 12:05:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:shotets No.4

回答回数42ベストアンサー獲得回数2

ポイント25pt

Contact Form 7 で実装できそうですね。

まず、いちいち投稿記事にショートコード入れずともフォームが追加されるように、

フォームを入れたいテンプレにショートコードが自動で入るようにする。

// フォームを入れたいテンプレートに記述

add_filter( 'the_content', 'add_contact_form' );

function add_contact_form($content)

{

$content .= "<h3>お問い合わせフォーム</h3>\n

[contact-form 1 \"お問い合わせフォーム\"]

\n";

return $content;

}


Contact Form 7 の管理者画面の宛先欄に [author_email] などと入れる。

そんで、そのショートコードの値をメール送信前に入れるフックを

function.php に入れる。


// メール送信前に各投稿者のメールアドレスをショートコードの値として追加

add_action( 'wpcf7_before_send_mail', 'add_author_email' );

function add_author_email( $wpcf7_contact_form )

{

// 投稿者のメアド取得

$author_email = get_the_author_meta( "user_email" );

// 代入

$wpcf7_contact_form->posted_data["author_email"] = $author_email;

}


id:takoyaking200x

もう少し詳しくお願いします

Contact Form 7をインストールして、あとは各テンプレートを

編集するだけでいいのでしょうか?

2011/05/15 10:28:14

その他の回答4件)

id:mezase50 No.1

回答回数143ベストアンサー獲得回数17

ポイント25pt

Contact Form 7を使えば近いことはできそうですが運用が難しいかもしれませんね。

以下参考まで。


お問い合わせフォームを簡単に作成できるプラグイン「Contact Form 7」

http://pc.kumao.net/2010/0528170010.html


その記事の投稿者にメールを送信したい

http://ja.forums.wordpress.org/topic/2699

id:takoyaking200x

なるほど、やはり難しいのですかね・・・

私もこの説明と同じようにコメントで流用するしかないと思っておりました。

他になにかいいアイディアはないでしょうか?

2011/05/14 13:51:11
id:online_p No.2

回答回数1153ベストアンサー獲得回数59

id:takoyaking200x

質問をちゃんと読んでください。

管理者に対するメールフォームではなく、投稿者に対してメールを送れるようにしたいのです。

2011/05/14 18:00:41
id:mezase50 No.3

回答回数143ベストアンサー獲得回数17

ポイント25pt

ざっくりと探してみました。内容の詳細までは確認していませんが英語のサイトで同じような質問と回答が見つかりました。


http://wordpress.org/support/topic/e-mail-author-plugin

Is there any plugin that makes it possible to send an E-mail to the author of an article without showing his/her actual E-mail address (to avoid spam) ?

この流れの中で

http://wordpress.org/extend/plugins/grunion-contact-form/

http://wordpress.org/extend/plugins/email-users/

が紹介されています。


こちらも参考になるかと思います。

http://en.forums.wordpress.com/topic/how-to-email-the-author

I'd like to know if there is a way to allow readers to privately contact the author. The most obvious method I can think of would be a "Contact me" link to some form (something like: http://wordpress.org/extend/plugins/contact-form-7-widget/) with capchas (as in http://wordpress.org/extend/plugins/really-simple-captcha/).

Wordpressではコメントするとauthorにメールが届くのでコメントをデフォルトモデレートにしておいて代用にするかコードをいじってコメント投稿する時に非公開を選択できるようにするとかの方法が簡単かもしれませんね。

http://en.support.wordpress.com/comment-notification-email/


これで2回目ですので後はコメント欄を開けておいてもらえれば追加があればそこに書きます。

id:takoyaking200x

英語苦手です・・・

2011/05/15 10:26:34
id:shotets No.4

回答回数42ベストアンサー獲得回数2ここでベストアンサー

ポイント25pt

Contact Form 7 で実装できそうですね。

まず、いちいち投稿記事にショートコード入れずともフォームが追加されるように、

フォームを入れたいテンプレにショートコードが自動で入るようにする。

// フォームを入れたいテンプレートに記述

add_filter( 'the_content', 'add_contact_form' );

function add_contact_form($content)

{

$content .= "<h3>お問い合わせフォーム</h3>\n

[contact-form 1 \"お問い合わせフォーム\"]

\n";

return $content;

}


Contact Form 7 の管理者画面の宛先欄に [author_email] などと入れる。

そんで、そのショートコードの値をメール送信前に入れるフックを

function.php に入れる。


// メール送信前に各投稿者のメールアドレスをショートコードの値として追加

add_action( 'wpcf7_before_send_mail', 'add_author_email' );

function add_author_email( $wpcf7_contact_form )

{

// 投稿者のメアド取得

$author_email = get_the_author_meta( "user_email" );

// 代入

$wpcf7_contact_form->posted_data["author_email"] = $author_email;

}


id:takoyaking200x

もう少し詳しくお願いします

Contact Form 7をインストールして、あとは各テンプレートを

編集するだけでいいのでしょうか?

2011/05/15 10:28:14
id:es-labo No.5

回答回数288ベストアンサー獲得回数39

ポイント25pt

そのほかの参考資料でよろしければ。

(一般の投稿・利用者の方と閲覧者の方のソーシャルサイトの利用状況によりますが・・・。参考まで。)

---

http://blog.pasonatech.co.jp/

こちらのブログの構成にあるようなタイプでしたら、同様にQRコードとメールURLへといったプロフィールのところが参考になるのでは?と感じました。

---

wordpressの無料版を利用していますが、ご利用方法である 記事を投稿される方に、wordpress内でのプロフィールがウエジットとして利用可能な こちらに登録していただき、写真の箇所へはQRコードなどですと、閲覧者のクリックもスムーズかと感じました。http://ja.gravatar.com/

http://blog.pasonatech.co.jp/sasaki/16208.html

---

そのほかでしたら、電子名刺との連携。iphoneユーザで、cardcloudとpokenを利用中

http://kengo.preston-net.com/ のサイトのように http://www.cardcloud.com/

http://thisme.jp/eseslabs555 プロフィールサイトのアイコンに 貼り付けています

http://poken.jp/ja/faq/

---

そして、ソーシャルサイト利用者とのリレーションでしたら、FACEDBOOKページへの

ガジェット

mixi greeなどで RSS利用 メッセージやツイッターのダイレクトなどで対応など 

参考にして行っています。

http://ameblo.jp/mobilewallet/

---

はじめは、http://www.lifehacker.jp/ さんのように

http://disqus.com/

で対応しようかなーと考えていましたが・・・。ブログとソーシャルサービスの連携で利用されている方も多くなったので、まだまだ格闘中です・・・。これからも、マッシュアップされていきそうなところですね。

以上 フリータイプ利用でのコメントでした。おじゃましました。

id:takoyaking200x

取り急ぎ表題の件につきましてはコメント欄で解決いたしましたが

とてもとても参考になります。

ありがとうございます。

2011/05/16 18:03:37
  • id:shotets
    > Contact Form 7をインストールして、あとは各テンプレートを
    > 編集するだけでいいのでしょうか?

    そうです。
    まあ、試してないのでちゃんと動くか分かりませんが。。。

    Contact Form 7 をインストールして、
    宛先欄に管理者のメールアドレスと[author_email]をカンマで区切って入力します。

    フォームを入れたいテンプレ、
    例えばblogというカスタム投稿タイプにフォームを出したいなら single-blog.php の先頭に
    <?php ?>で囲って上記コードを入力します。

    function.php に下のコードを(もちろんphp内に)入力してテンプレをアップすれば動きませんかね?

  • id:takoyaking200x
    お世話になります。

    1)// フォームを入れたいテンプレートに記述

    こちらに関しては、フォームの表示までは出来ました。
    しかしフォーム下部に
    ���₢���킹�t�H�[��
    [contact-form 404 "Not Found"]
    このように文字化けとエラーが出ております。

    2)function.php に下のコードを
    こちらはContact Form 7のfunction.phpでよろしいのでしょうか?
    ブログテーマ側にも同じファイルがあるため、両方で試している状況です。
  • id:takoyaking200x
    度々ですみません

    1)に関しては文字コードを変えるだけで直りました。
    2)に関してはテーマ側のfunction.php、Contact Form 7のfunction.phpどちらでも管理者にはメールが送信されますが、登録ユーザーにはメールが行かないようです・・・
  • id:shotets
    う~ん。そうか、
    init時点だからまだどの投稿なのか判断する前なんですね。

    2)については送信時に投稿IDを何らかの形で送る必要がありそうですね。
    ちょっと考えてみます。
  • id:takoyaking200x
    お手数をおかけしますがよろしくお願い致しますm(__)m
  • id:shotets
    まずは 1)に以下を追記ください。
    フォームにhiddenタグが追加されると思います。

    ----------------------------------------------------------------------------
    // 投稿者IDを Contact Form 7 に渡すhiddenタグを挿入
    add_filter( 'wpcf7_form_elements', 'add_author_id_to_wpcf7' );
    function add_author_id_to_wpcf7( $form_elements )
    {
    $form_elements .= "<input type='hidden' name='author_id' value='".get_the_author_meta( 'id' )."' />\n";

    return $form_elements;
    }
    ----------------------------------------------------------------------------

    つぎに 2)を以下に変えてください。(テーマファイルのfunction.phpに入れてください)
    ----------------------------------------------------------------------------
    // メール送信前に各投稿者のメールアドレスをショートコードの値として追加
    add_action( 'wpcf7_before_send_mail', 'add_author_email' );
    function add_author_email( $wpcf7_contact_form )
    {
    // 値がないか正常でない
    if( empty($_POST["author_id"]) || !is_numeric($_POST["author_id"]) ) return;
    // 投稿者のメアド取得
    $author_email = get_the_author_meta( "user_email", $_POST["author_id"] );
    // 代入
    $wpcf7_contact_form->posted_data["author_email"] = $author_email;
    }
    ----------------------------------------------------------------------------

    どうでしょう?

  • id:takoyaking200x
    お世話になります。

    先ほどまでは送信先の設定を[author_email]のみにしたところ
    送信出来ませんの表示だったのが、今回の記述に変更したところ
    送信までは出来たようです。

    ところが、受信の確認をしていても届いておりませんでした・・・(><)

    ログがあればどこに送信されたのか確認出来るかと思うのですが・・・
    どこかには送信されているけど、どこに送信されているのかわからないような状況のようです。

  • id:shotets
    確認のため送信先に確認できるメールアドレスを入れて、
    送信本文にも[author_email]を入れてみてください。

    届いた本文の[author_email]がどのように置換されているかを見れば
    送信先メールアドレスが分かるはずです。
  • id:takoyaking200x
    お世話になります

    本文に[author_email]をいれたところ、確かに登録ユーザーのアドレスが表示されております。

    となると、送信先にうまく転記出来ていないという事なのでしょうか。
  • id:shotets
    > となると、送信先にうまく転記出来ていないという事なのでしょうか。
    そうなりますね。
    う~ん。なんでできないんでしょうね。。。
  • id:takoyaking200x
    お世話になります

    いろいろと検証をしましたところ、別ユーザーを作ってみたら動作しました。

    元の検証用ユーザーについてもメアドが間違っている訳ではなく、新しく作ったユーザと
    同じ条件なのですが・・・

    3ユーザで確認し、2ユーザではちゃんと届きました。

    最初のユーザに届かないのがちょっと気持ち悪いのですが、内容的には正しく動いていると感じます。

    本当にありがとうございました!
  • id:shotets
    それは良かった。^^

    でも、遅れないユーザがいるというのは気持ち悪いですね。
    迷惑メールフォルダに入っているなんてことはないですかね。
  • id:takoyaking200x
    はい、迷惑メールフォルダにも入っておりまえん。

    なぜなのか理由を探していたのですが、謎のままです(><)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません