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

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

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

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

WordPress

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

PHP

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

プラグイン

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2944閲覧

bbpressの投稿フォームをカスタマイズしたい。

cafe1111

総合スコア62

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

WordPress

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

PHP

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

プラグイン

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/06/08 03:28

前提・実現したいこと

bbpressの投稿フォームをカスタマイズしたい。
現在は名前とメールアドレス入力欄と三つしかないが入力する項目を色々増やしたい。

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

下記のサイトを参考に機能を追加しようとしたのだが反映されなかった。

参考
調べたサイト1
調べたサイト2
調べたサイト3

該当のソースコード

php

1//content-single-topic.php 2<?php 3 4/** 5 * The template for displaying all pages. 6 * 7 * @package Theme Freesia 8 * @subpackage Excellent 9 * @since Excellent 1.0 10 */ 11 12 13 14/** 15 * Single Topic Content Part 16 * 17 * @package bbPress 18 * @subpackage Theme 19 */ 20 21 22 23?> 24 25<div id="bbpress-forums" style="margin:0 auto"> 26 27 28 <?php bbp_breadcrumb(); ?> 29 30 <?php do_action('bbp_template_before_single_topic'); ?> 31 32 <?php if (post_password_required()) : ?> 33 34 <?php bbp_get_template_part('form', 'protected'); ?> 35 36 <?php else : ?> 37 38 <?php bbp_topic_tag_list(); ?> 39 40 <?php bbp_single_topic_description(); ?> 41 42 <?php if (bbp_show_lead_topic()) : ?> 43 44 <?php bbp_get_template_part('content', 'single-topic-lead'); ?> 45 46 <?php endif; ?> 47 48 <?php if (bbp_has_replies()) : ?> 49 50 <?php bbp_get_template_part('pagination', 'replies'); ?> 51 52 <?php bbp_get_template_part('loop', 'replies'); ?> 53 54 <?php bbp_get_template_part('pagination', 'replies'); ?> 55 56 <?php endif; ?> 57 58 <!-- 追加 --> 59 <?php 60 //テキスト項目の値の出力 61 echo get_post_meta(bbp_get_topic_id(), 'input_name', true); 62 //テキストボックス項目の値の出力 63 echo get_post_meta(bbp_get_topic_id(), 'textarea_name', true); 64 65 ?> 66 67 <?php bbp_get_template_part('form', 'reply'); ?> 68 69 70 <?php endif; ?> 71 72 <?php do_action('bbp_template_after_single_topic'); ?> 73 74</div> 75 76//form-anonymous.php 77<?php 78 79/** 80 * Anonymous User 81 * 82 * @package bbPress 83 * @subpackage Theme 84 */ 85 86?> 87 88<?php if ( bbp_current_user_can_access_anonymous_user_form() ) : ?> 89 90 <?php do_action( 'bbp_theme_before_anonymous_form' ); ?> 91 92 <fieldset class="bbp-form"> 93 <legend><?php ( bbp_is_topic_edit() || bbp_is_reply_edit() ) ? _e( 'Author Information', 'bbpress' ) : _e( 'Your information:', 'bbpress' ); ?></legend> 94 95 <?php do_action( 'bbp_theme_anonymous_form_extras_top' ); ?> 96 97 <p> 98 <label for="bbp_anonymous_author"><?php _e( 'Name (required):', 'bbpress' ); ?></label><br /> 99 <input type="text" id="bbp_anonymous_author" value="<?php bbp_author_display_name(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_name" /> 100 </p> 101 102 <p> 103 <label for="bbp_anonymous_email"><?php _e( 'Mail (will not be published) (required):', 'bbpress' ); ?></label><br /> 104 <input type="text" id="bbp_anonymous_email" value="<?php bbp_author_email(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_email" /> 105 </p> 106 107<!-- <p> 108 <label for="bbp_anonymous_website"><?php _e( 'Website:', 'bbpress' ); ?></label><br /> 109 <input type="text" id="bbp_anonymous_website" value="<?php bbp_author_url(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_anonymous_website" /> 110 </p>--> 111 112 <?php do_action( 'bbp_theme_anonymous_form_extras_bottom' ); ?> 113 114 </fieldset> 115 116 <?php do_action( 'bbp_theme_after_anonymous_form' ); ?> 117 118<?php endif; ?> 119 120//functions.php 121//orca 122 123add_action ( 'bbp_theme_before_topic_form_content', 'bbp_extra_fields'); 124function bbp_extra_fields() { 125 126 $html = ""; 127 //テキスト項目 128 $html .= '<input name="input_name" type="text" value="">'; 129 //テキストボックス項目 130 $html .= '<textarea name="textarea_name" cols=10></textarea>'; 131 132 echo $html; 133} 134 135 136add_action ( 'bbp_new_topic', 'bbp_save_extra_fields', 10, 1 ); 137add_action ( 'bbp_edit_topic', 'bbp_save_extra_fields', 10, 1 ); 138function bbp_save_extra_fields($topic_id = 0) { 139 140 if (isset($_POST) && $_POST['input_name']!='') { 141 //テキスト項目の保存 142 update_post_meta( $topic_id, 'input_name', $_POST['input_name'] ); 143 } 144 if (isset($_POST) && $_POST['textarea_name']!=''){ 145 //テキストボックス項目の保存 146 update_post_meta( $topic_id, 'textarea_name', $_POST['textarea_name'] ); 147 } 148 149 150 151 } 152 153 154

試したこと

functions.phpがテーマにあるものなのかbbpressにあるものなのかわからなかったためほぼ全部のfunctions.phpに貼り付けてみたがダメだった。

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

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

使用しているテーマディレクトリにあるfunctions.phpに追記してください。
私の環境ではwp_postmetaテーブルに登録されました。

投稿2020/06/08 03:48

tabuu

総合スコア2480

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

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

cafe1111

2020/06/08 05:05

テーマディレクトリにあるfunctions.phpに記載しましたがダメでした。 wp_postmetaテーブルとはどこにあるのでしょうか? content-single-topic.phpのがフォームを出力しているページみたいなのでここに出力させたいです。
tabuu

2020/06/08 05:32

ダメとはどのような状態ですか? ・フォームが表示されないのでしょうか? ・入力値が登録されないのでしょうか? ・登録値が表示されないのでしょうか? wp_postmetaはWordPressインストール時に設定したデータベースにあります。 >content-single-topic.phpのがフォームを出力しているページみたいなのでここに出力させたいです。 厳密にいうとフォームを表示しているページはテーマ内のファイルです。 フォームを出力している箇所はform-topic.phpです。 なお、フォームは複数種類あります。例えばトピックとリプライのフォームは別です。 トピックの登録フォームに追加したいということでお間違いないでしょうか?
cafe1111

2020/06/08 05:47

フォームそのものが表示されません。 トピックとリプライのフォームの違いがわかりませんが、トピックの下層ページにあるフォームを編集したいです。 返信先と書いてあるのでリプライかもしれません。 例:カテゴリー一覧にかっこいいとトピックがありそこをクリックすると写真を投稿できるページに移動しそのフォームを編集したいです。
cafe1111

2020/06/08 05:50

form-anonymous.phpにinputを直接入力するやり方はダメなのでしょうか?
tabuu

2020/06/08 06:32

form-anonymous.phpは未ログインの場合に名前とメールアドレスを入力するフォームです。 未ログインのみ表示する場合はそのファイルで大丈夫です。 リプライフォームはform-reply.phpです。 <?php bbp_the_content( array( 'context' => 'reply' ) ); ?> が本文を入力するテキストエリアなので、 この前後にinputを直書きしてもよいかと思います。 bbpressバージョンアップすると元に戻るのでご注意ください。 テーマフォルダにbbpressというフォルダを作って、そこにform-reply.phpを コピーして編集するとバージョンアップで消えないので安心です。
cafe1111

2020/06/08 08:19

わかりました。 出来上がったらフォルダを作り消えないようにします。 今回はありがとうございました。 まだbbpressについて質問したいことがありますので機会がありましたらよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問