質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

3323閲覧

bbpressのフォームでポストされた情報を出力したい。

cafe1111

総合スコア62

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2020/06/09 07:20

編集2020/06/14 03:52

前提・実現したいこと

bbpressのフォームでポストされた情報を出力したい。

発生している問題・エラーメッセージ

formをカスタマイズし同ページの他の要素にURLを出力させたいのだが出力されない。

該当のソースコード

php

1//form-reply.php 2<?php if (bbp_is_reply_edit()) : ?> 3 4 <div id="bbpress-forums"> 5 6 <?php bbp_breadcrumb(); ?> 7 8 <?php endif; ?> 9 10 <?php if (bbp_current_user_can_access_create_reply_form()) : ?> 11 12 <div id="new-reply-<?php bbp_topic_id(); ?>" class="bbp-reply-form"> 13 14 <form id="new-post" name="new-post" method="post" action="<?php the_permalink(); ?>"> 15 16 <?php do_action('bbp_theme_before_reply_form'); ?> 17 <p class="bbp-reply-form__title">投稿フォーム</p> 18 19 <fieldset class="bbp-form"> 20 21 22 23 <legend>カテゴリー:<?php the_title(); ?></legend> 24 25 26 <div> 27 28 <?php bbp_get_template_part('form', 'anonymous'); ?> 29 30 <?php do_action('bbp_theme_before_reply_form_content'); ?> 31 32 <p> 33 <label for="bbp_anonymous_author">名前</label><br /> 34 <input type="text" id="bbp_anonymous_author" value="<?php bbp_author_display_name(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_name" /> 35 </p> 36 37 <p> 38 <label for="bbp_anonymous_email"><?php _e('Mail (will not be published) (required):', 'bbpress'); ?></label><br /> 39 <input type="text" id="bbp_anonymous_email" value="<?php bbp_author_email(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_email" /> 40 </p> 41 42 <p> 43 <label for="url">URL</label><br /> 44 <input type="url" name="bbp_anonymous_url" id="url" value="" tabindex="<?php bbp_tab_index(); ?>" size="40"> 45 </p> 46 47 48 <?php bbp_the_content(array('context' => 'reply')); ?> 49 50 <?php do_action('bbp_theme_after_reply_form_content'); ?> 51 52 <?php if (!(bbp_use_wp_editor() || current_user_can('unfiltered_html'))) : ?> 53 54 <p class="form-allowed-tags"> 55 <label><?php _e('You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes:', 'bbpress'); ?></label><br /> 56 <code><?php bbp_allowed_tags(); ?></code> 57 </p> 58 59 <?php endif; ?> 60 61 <?php if (bbp_allow_topic_tags() && current_user_can('assign_topic_tags')) : ?> 62 63 <?php do_action('bbp_theme_before_reply_form_tags'); ?> 64 65 <p> 66 <label for="bbp_topic_tags"><?php // _e( 'Tags:', 'bbpress' ); 67 ?>画像:</label><br /> 68 <input type="text" value="<?php bbp_form_topic_tags(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_tags" id="bbp_topic_tags" <?php disabled(bbp_is_topic_spam()); ?> /> 69 </p> 70 71 <?php do_action('bbp_theme_after_reply_form_tags'); ?> 72 73 <?php endif; ?> 74 75<?php endif; ?> 76 77//loop-single-reply.php 78<div <?php bbp_reply_class(); ?>> 79 80 <!--<div class="bbp-reply-author">--> 81 82 <?php do_action( 'bbp_theme_before_reply_author_details' ); ?> 83 84 85 <?php bbp_reply_author_link( array( 'sep' => '', 'show_role' => false ) ); ?> 86 87 88 89 <?php if ( bbp_is_user_keymaster() ) : ?> 90 91 <!--<?php do_action( 'bbp_theme_before_reply_author_admin_details' ); ?>--> 92 93 <!--<div class="bbp-reply-ip"><?php bbp_author_ip( bbp_get_reply_id() ); ?></div>--> 94 95 <!--<?php do_action( 'bbp_theme_after_reply_author_admin_details' ); ?>--> 96 97 <?php endif; ?> 98 99 100 <!--<?php do_action( 'bbp_theme_after_reply_author_details' ); ?>--> 101 102 <!--</div> --><!-- .bbp-reply-author --> 103 104 <!--<div class="bbp-reply-content">--> 105 106 <!--<?php do_action( 'bbp_theme_before_reply_content' ); ?>--> 107 108 109 110 <?php bbp_reply_content(); ?> 111//追加部分 112 <?php if(isset($_POST["bbp_anonymous_url"])) :?> 113 <?php $bbp_anonymous_url = $_POST["bbp_anonymous_url"]; ?> 114 <p><a href="<?php echo $bbp_anonymous_url; ?>">リンク</a></p> 115 <?php endif;?> 116 117 118 <!--<?php do_action( 'bbp_theme_after_reply_content' ); ?>--> 119 120 <!--</div>--><!-- .bbp-reply-content --> 121 122</div><!-- .reply --> 123 124 125

php

1//追加 2//template.php 3 4//2425行目 5function bbp_get_form_reply_content() { 6 7 8 // Get _POST data 9 if ( bbp_is_post_request() && isset( $_POST['bbp_reply_content'] ) ) { 10 $reply_content = stripslashes( $_POST['bbp_reply_content'] ); 11 12 // Get edit data 13 } elseif ( bbp_is_reply_edit() ) { 14 $reply_content = bbp_get_global_post_field( 'post_content', 'raw' ); 15 16 // No data 17 } else { 18 $reply_content = ''; 19 } 20 21 return apply_filters( 'bbp_get_form_reply_content', $reply_content ); 22 } 23 24

試したこと

本番環境で試してみたが効果なしだった。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

POST変数はフォームに入力している値です。
保存した値はpostmetaから取得できます。

PHP

1<?php $bbp_anonymous_url = get_post_meta(bbp_get_reply_id(), '_bbp_anonymous_website', true); ?> 2<?php if ($bbp_anonymous_url): ?> 3 <p><a href="<?php echo $bbp_anonymous_url; ?>">リンク</a></p> 4<?php endif;?>

投稿2020/06/10 01:40

編集2020/06/12 05:45
tabuu

総合スコア2480

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cafe1111

2020/06/11 12:22

返信遅くなってしまいすみません。 変更してみたのですがリンクという文字が現れませんでした。 また、一度投稿したら違うページに行ってもその投稿が消えないようにしたいのですがわかりますでしょうか?
tabuu

2020/06/11 22:45

最初に提示したのはデータベースから入力値を取得するまでです。 出力はご自身の手法に合わせてください。
cafe1111

2020/06/12 03:43

出力はこれではいけないのでしょうか? <?php if(isset($_POST["bbp_anonymous_url"])) :?> <?php $bbp_anonymous_url = get_post_meta(bbp_get_reply_id(), '_bbp_anonymous_website', true);?> <p><a href="<?php echo $bbp_anonymous_url; ?>">リンク</a></p> <?php endif;?> tabuu様のコードを記述してみましたが画面が真っ白になってしまいました
tabuu

2020/06/12 05:48

一部間違いがあったので修正してみました。 最初に提示されていたソースコードの「追加部分」と置き換えてみてください。
cafe1111

2020/06/12 07:15

やってみましたが反応なしでした、、 名前の取得と同じやり方の方ではむりでしょうか? bbpress>includes>common>functions.phpのどこかをいじると思うのですが自分にはわからないです。
tabuu

2020/06/12 08:48

名前の取得と同じです。 loop-single-reply.phpの出力したい箇所に記述してください。 フックしたい場合はfunctions.phpでbbp_theme_after_reply_contentをフック すればよいかと思います。
cafe1111

2020/06/14 03:55

色々やってみたのですが中々うまくいきません。 loop-single-reply.phpの<?php bbp_reply_content(); ?>で出力しているみたいなのでincludes>replies>template.phpに追加した記載が’ありました。 こちらに情報を追加すればいいのでしょうか?
tabuu

2020/06/14 23:46

方法はいくつかありますので、includesディレクトリのファイルは修正しないほうがよいです。 ●標準のテンプレートを使う場合は以下のいずれか対応する ・loop-single-reply.phpに直書きする ・bbp_theme_after_reply_contentにアクションフックする ・bbp_get_reply_contentにフィルターフックする ●標準のテンプレートを使わない場合は以下のいずれかで対応する ・自作のテンプレートに直書きする ・bbp_get_reply_contentにフィルターフックする まずは固定の文字(例えばabc123)を目的の場所に出力できるか確認して、 それができてからlinkを出力するように順番に試していくのがよいかと思います。
cafe1111

2020/06/16 02:51

ご返信有り難うございます。 その中だと直書きが1番簡単そうですね。 tabuu様がご提示いただいたのが直書きのやり方ですよね? tabuu様の記述が間違ってる可能性は低いと思いますので、自分のこちらの記述が間違っているのでしょうか? <p> <label for="url">URL</label><br /> <input type="url" name="bbp_anonymous_url" id="url" value="" tabindex="<?php bbp_tab_index(); ?>" size="40"> </p>
tabuu

2020/06/16 03:22

そのコードはurlの入力欄を出力するタグです。 最初の質問は保存したurlを表示したいということでしたが、やりたいことが変わってきています? ちなみにurlの入力欄はログインしていない状態でしたら自動で出力されるはずです。
cafe1111

2020/06/16 03:42

URLに入力された情報を任意の場所に出力したいのでやりたいことは変わっていません。 ただ、大元の入力欄が間違っているのかなと思ったのでご質問いたしました。
tabuu

2020/06/16 04:32

get_post_meta(bbp_get_reply_id(), '_bbp_anonymous_website', true); 私が提示したこちらのコードは「_bbp_anonymous_website」というデータを取得するものです。 bbp_anonymous_url という名称を使うのであればそのように変更してください。また、この名称の値を データベース(postmeta)に保存する処理も追加してください。 まとめると、「bbp_anonymous_url」という名称を取りまわす以下の処理を実装してください。 ・フォームを表示する処理 ・フォームに入力された値をデータベースに保存する処理 ・データベースに保存された値を表示する処理
tabuu

2020/06/16 04:35

何回かお伝えしていますがurlを入力する機能は標準でありますので、あえて別に実装しようと されている理由は何でしょうか?
cafe1111

2020/06/16 05:23

わかりました、やってみます。 urlを入力する機能というのはどういうものでしょうか? 友達にbbpressでできたサイトをカスタマイズして欲しいと言われデータをもらいましたが、フォームに合った機能は名前、メールアドレス、テキスト入力欄この三つだけでした。 なので自分で実装するしかないと思いやっている次第です。
tabuu

2020/06/17 00:00

個人的に確認したいことがあって昨日WordPressを新規インストールして bbPressプラグインを入れました。 初期状態では名前、メールアドレス、本文の他にウェブサイトの入力欄がありましたよ。
cafe1111

2020/06/21 03:03

友人に聞いてみたところ少しいじったとのことでした。 なので通常のbbpressの状態と違うみたいです。
cafe1111

2020/06/21 03:05

urlを表示出力して入コードを送ってもらうことって可能でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問