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

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

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

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

PHP

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

Q&A

解決済

1回答

545閲覧

wordpress「コメントは承認待ちです」の場所の変更をしたい。

satoshickkk

総合スコア53

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/03/05 09:44

編集2018/03/09 04:34

###困っている事
wordpressで自作テーマを作成しております。
ブログのコメントでつまづきこの場を借りて質問させていただきます。

コメントを承認制にし「あなたのコメントは承認待ちです」と表示されるかと思いますが
表示される位置を変更したいのですが下記の方法を使ってfunction.phpで変更することは出来ませんでしょうか?
comment欄の「名前・メールアドレス・本文」の入れ替えの際に参考にさせていただいたサイトです。

WordPressのコメント欄の逆になった表示順序を戻す方法

php

1function wp_move_comment_field_to_bottom( $fields ) { 2 $comment_field = $fields['comment']; 3 unset( $fields['comment'] ); 4 $fields['comment'] = $comment_field; 5 6 return $fields; 7} 8add_filter( 'comment_form_fields', 'wp_move_comment_field_to_bottom' );

①名前
②コメントは承認待ちです
③日付・時間

通常wordpressの「コメントは承認待ちです」が表示されるのは②の位置だと思いますが
一番上の①へ表示されるようにしたいです。

お力をお貸しください、宜しくお願い致します。

###3月9日追記
comments.php

<div id="comment_area"> <?php $args = array( 'title_reply' => 'Reply', 'label_submit' => 'Submit', 'fields' => array( 'author' => '<p class="comment-form-author">' . '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' placeholder="Name" /></p>', 'email' => '<p class="comment-form-email">' . '<input id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . 'placeholder="Email" /></p>', 'url' => '', ), 'comment_field' => '<p class="comment-form-comment mincho2">' . '<textarea id="comment" name="comment" cols="50" rows="6" aria-required="true"' . $aria_req . ' placeholder="Comment" /></textarea></p>', ); comment_form( $args ); ?> <?php if(have_comments()): ?> <ol class="commets-list"> <?php wp_list_comments('callback=gtcn_basic_callback') ?> </ol> <?php endif; ?>

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

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

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

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

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

guest

回答1

0

ベストアンサー

comment_form_fieldsフックはフォームにしか使えません。
functions.phpに以下のようなコードを書いて

function my_comment( $comment, $args, $depth ) { $tag = ( 'div' === $args['style'] ) ? 'div' : 'li'; ?> <<?php echo $tag; ?> id="comment-<?php comment_ID(); ?>" <?php comment_class(); ?>> <article id="div-comment-<?php comment_ID(); ?>" class="comment-body"> <footer class="comment-meta"> <div class="comment-author vcard"> <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></p> <?php echo get_avatar( $comment, 56 ); ?> <?php printf( __( '%s <span class="says">says:</span>' ), sprintf( '<b class="fn">%s</b>', get_comment_author_link( $comment ) ) ); ?> </div><!-- .comment-author --> <div class="comment-metadata"> <time datetime="<?php comment_time( 'c' ); ?>"> <?php printf( __( '%1$s at %2$s' ), get_comment_date( '', $comment ), get_comment_time() ); ?> </time> <?php edit_comment_link( __( 'Edit' ), '<span class="edit-link">', '</span>' ); ?> </div><!-- .comment-metadata --> <?php if ( '0' == $comment->comment_approved ) : ?> <?php endif; ?> </footer><!-- .comment-meta --> <div class="comment-content"> <?php comment_text(); ?> </div><!-- .comment-content --> <?php comment_reply_link( array_merge( $args, array( 'add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'], 'before' => '<div class="reply">', 'after' => '</div>' ) ) ); ?> </article><!-- .comment-body --> <?php }

wp_list_comments()の配列に'callback' => 'my_comment'を加えれば先の関数を呼び出せます。
テンプレートタグ/wp list comments

追記

コードは/wp-includes/class-walker-comment.phpからコピーしたもので、承認待ちの部分は<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></p>です。
コアの実際のコードと比較してもらえば分かりますが、位置を上に上げています。

コードはとりあえずそのまま丸々functions.phpにコピペしてもらって、コメントを表示したい位置へ以下のように書けばmy_comment()関数でコメントを出力します。
パラメータの詳細はCodexを参考にしてください。

<?php wp_list_comments( array( 'callback' => 'my_comment' , 'style' => 'ol', 'avatar_size' => 32, ) ); ?>

また、以下のような方法もありますが、似たようなもんだと思います。

WordPressのコメント内部デザインをWalkerクラスを使って変更する方法
http://blog.mizoshiri.com/archives/3933

投稿2018/03/05 10:52

編集2018/03/09 03:11
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

satoshickkk

2018/03/09 02:23

返信大変遅くなりました。回答いただきありがとうございます。 Space-Monkey様には何度もお世話になっております。 コールバック関数をfunctions.phpに定義しそこからどうすれば 「コメントは承認待ちです」を一番上へ移動させることができるのでしょうか? 私なりに調べてみましたが全く分からないので教えて頂けたら幸いです。
退会済みユーザー

退会済みユーザー

2018/03/09 03:11

追記しました。
satoshickkk

2018/03/09 04:16

追記ありがとうございます。 追記で頂いたコードはcomment.phpの方に書き込みで合っていますでしょうか? comment.phpの方にコードを書きましたが順番も変わらずそのままになっております。
退会済みユーザー

退会済みユーザー

2018/03/09 04:28

comments.phpでは? 『s』
satoshickkk

2018/03/09 04:32

スペルミスです、comments.phpに書き込みました。
satoshickkk

2018/03/09 04:34

質問にcomments.phpの中を追記させていただきました。
退会済みユーザー

退会済みユーザー

2018/03/09 05:06

comments.phpの編集前後が不明なのでどこが変わったのか分かりません。 私が提示したコードをそのままfunctions.phpに書いたならcomments.phpの <?php wp_list_comments('callback=gtcn_basic_callback') ?> ではなく <?php wp_list_comments('callback=my_comment') ?> になります。 最初に書いてますがfunctions.phpを編集した上でwp_list_comments()のパラメータを変更しないと並びは変わりません。
satoshickkk

2018/03/09 08:16

パラメータを編集したところ並びが変わりました。 読解力が乏しく大変ご迷惑をおかけしました、ありがとうございます。
satoshickkk

2018/03/09 08:24

ベストアンサー後に申し訳ございません、もう1つなのですが 承認待ちコメントの他のコメント全てに「承認待ちです」と記述が出てしまいます。
退会済みユーザー

退会済みユーザー

2018/03/09 08:32

このようなプラグインと併用してますか? Greg's Threaded Comment Numbering https://ja.wordpress.org/plugins/gregs-threaded-comment-numbering/ もしそうならプラグインを使わずに別の方法を検討するか、プラグインのコードを編集して当該文言を出力しないようにしてください。
satoshickkk

2018/03/09 08:46

Greg's Threaded Comment Numbering 併用しておりました、大変申し訳ございません。 プラグイン使用せずにナンバリングしてみたいと思います。
satoshickkk

2018/03/09 08:50

Greg's Threaded Comment Numberingを停止し確認してみても やはり繰り返し全てのコメントに「承認待ちです」の記述がされてしまいます。
退会済みユーザー

退会済みユーザー

2018/03/09 09:00

callback=gtcn_basic_callbackの記述を削除しプラグインも削除して尚、重複して表示されるのなら<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></p>を二か所記述しているかキャッシュ等の影響ではないですか? そちらの不手際であることは間違いないです。
satoshickkk

2018/03/13 05:50

Space-Monkey様 無事に解決する事が出来ました、何度もやり取りしてくださって感謝いたします。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問