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

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

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

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

PHP

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1181閲覧

Wordpressで固定ページから各コメントページへの条件分岐はページタイトルだけでできますか?

nonkozo

総合スコア2

WordPress

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

PHP

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/04/21 08:29

編集2021/04/25 04:16

CSS

1//コメント欄に項目を追加 2add_filter( 'comment_form_defaults','change_comment_form_flower'); 3function change_comment_form_flower($default) { 4$commenter = wp_get_current_commenter(); 5/***メール入力欄の下に花選択を表示させる*************************/ 6/* $default['fields']['email'] .= '<p class="comment-form-author">' .*/ 7/* $default['fields']['jyuu'] .= '<p class="comment-form-jyuu">' . */ 8$default['fields']['email'] .= '<p class="comment-form-email">' . 9'<label for="flower">'. __('お花を選んで下さい') .'</label> 10<input type="radio" id="flower" class="flower" name="flower" value="hasu"> 11<label for="hasu"> 12<img src="https://cft-info.com/wp-content/uploads/2021/03/hasu.png" alt="ハスの画像" width="100" height="100" border="0"> 13</label> 14<input type="radio" id="flower" class="flower" name="flower" value="bara"> 15<label for="baraw"> 16<img src="https://cft-info.com/wp-content/uploads/2021/03/baraw.png" alt="バラの画像" width="100" hight="100"   border="0"> 17</label> 18<input type="radio" id="flower" class="flower" name="flower" value="kiku"> 19<label for="kiku"> 20<img src="https://cft-info.com/wp-content/uploads/2021/03/kiku.png" alt="キクの画像" width="100" height="100" border="0"> 21</label> 22<input type="radio" id="flower" class="flower" name="flower" value="ran"> 23<label for="ran"> 24<img src="https://cft-info.com/wp-content/uploads/2021/03/ran.png" alt="ランの画像" width="100" height="100" border="0"> 25</label> 26<input type="radio" id="flower" class="flower" name="flower" value="tulips"> 27<label for="tulips"> 28<img src="https://cft-info.com/wp-content/uploads/2021/03/tulips.png" alt="チューリップの画像" width="100" height="100" border="0"> 29</label> 30</p>'; 31return $default; 32 33```PHP 34/* タイトルが「Mymessage」または「guestbook」の固定ページで行う処理を書く2021.04.21*/ 35<?php if ( is_page(array('Mymessage'),('guestbook')) ): ?> 36/*アバター選択制2021.03.28*/ 37/*get_avatarの画像URLを書き換える*/ 38function new_get_avatar_data($args,$id_or_email){ 39$check_avatar =null; 40$user = null; 41$hash = null; 42if($args['found_avatar'] == true){ 43if ( ! empty( $id_or_email->user_id )){ 44$user = get_user_by( 'id', (int) $id_or_email->user_id ); 45$email = $user->user_email; 46} 47 48if ( ( ! $user || is_wp_error( $user ) ) && ! empty( $id_or_email->comment_author_email ) ) { 49$email = $id_or_email->comment_author_email; 50} 51 52if(! empty($email)){ 53$hash = md5( strtolower( trim( $email ) ) ); 54} 55 56$uri = 'http://www.gravatar.com/avatar/' . $hash . '?d=404'; 57$headers = @get_headers($uri); 58 59if (preg_match("|200|", $headers[0])) { 60$check_avatar = TRUE; 61} 62 63} 64 65if(!empty($id_or_email)){ 66$flower = get_comment_meta($id_or_email->comment_ID);} 67if(is_object($id_or_email) && isset( $id_or_email->user_id ) && empty($check_avatar) && ! empty($flower)){ 68$flower = $flower['flower'][0]; 69if($flower == 'hasu'){ 70 71$args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/hasu.png';//ハスの画像 72} 73elseif($flower == 'bara'){ 74$args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/baraw.png';//バラの画像 75} 76elseif($flower == 'kiku'){ 77$args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/kiku.png';//キクの画像 78} 79elseif($flower == 'ran'){ 80$args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/ran.png';//スズランの画像 81} 82elseif($flower == 'tulips'){ 83$args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/tulips.png';//チューリップの画像 84} 85 86return $args; 87 88} 89else{ 90return $args; 91} 92} 93add_filter('get_avatar_data','new_get_avatar_data',10,2); 94} 95//ラジオボタンの情報をデータベースに追加する 96add_action( 'comment_post', 'save_comment_meta_data_flower' ); 97function save_comment_meta_data_flower( $comment_id ) { 98$flowers = explode(',', $_POST['flower']); 99foreach ($flowers as $flower) 100echo update_comment_meta( $comment_id, 'flower', $flower, true); 101} 102} 103 104**/* タイトルが「Mymemories」の個別ページで行う処理を書く2021.04.21アバターの選択なし*/の場合は 105処理をしない、画像は表示しない 106else if ( is_single('Mymemories') ) {} 107<?php endif; ?> 108```⑴ 各固定ページからボタンで飛んだ時、それぞれのコメント入力欄を表示させ登録したい 109 110  ➀ 固定ページAからボタン➡コメント用固定ページA-1に飛ぶ 111    表示項目 名前、お住い、メアド、画像(ラジオボタンで5つから1つ選ぶ)、コメント 112  ➁ 固定ページBからボタン➡コメント用固定ページB-1に飛ぶ 113 表示項目 ➀と同じ 114  ➂ 固定ページCからボタン➡コメント用固定ページC-1に飛ぶ 115    表示項目 名前、お住い、メアド、コメントのみ入力、表示(画像なし) 116⑵ function.phpに条件分岐をして(ページタイトルがA,Bの時は画像表示Cの時は画像を表示しない) 117  みたが、まったく画像が表示されなくなってしまった。 118  条件分岐前は画像選択できていたので、条件の記述が間違っていると思うのですが何が違うのか 119分かりません。 120⑶ ソースコード(function.php)エラーは出ていないのですが認識もされません。

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

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

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

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

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

K_3578

2021/04/23 03:02

ソースコードはMarkDownの<code>ブロック内に貼り付けてご提示ください。
K_3578

2021/04/23 03:56

PHP、CSSはそれぞれ別の<code>ブロックに分けてください
nonkozo

2021/04/24 03:22

すみません。初心者でよくわからないのですが・・<code>に載せてあるものは全てfonction.phpにあるままを載せてあります。どこをどう分けて載せたらよいのかさえ分からずお恥ずかしいかぎりです。
K_3578

2021/04/24 09:55

えーとですね、種類ごとに分けて貰えないと見づらいので、 PHPのコードとCSSのコードは分けたブロックにしてくれると有難いのです
nonkozo

2021/04/25 03:23

はい。やってみます
guest

回答1

0

ベストアンサー

Wordpressで固定ページから各コメントページへの条件分岐はページタイトルだけでできますか?

<?php if ( is_page(array('Mymessage'),('guestbook')) ): ?>

の is_page に指定する引数のことを言われているのでしょうか?

is_page()

$page
(mixed) (オプション) 固定ページの ID、タイトル、スラッグ、またはそれらの配列。

とあるように ID / タイトル / スラッグ が使えます。
ただ、ID やスラッグを使う方が 確実にページを特定できると思います。

投稿2021/04/25 22:34

CHERRY

総合スコア25218

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

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

nonkozo

2021/04/26 01:28

ありがとうございます。IDやスラッグを使いたいのですが、ページのサービス的に1個人に1コメントページを割り振るので、どんどん追加しないといけなくなるのでタイトル(サイトには非表示)でタイプ分けをしたいと思っていました。タイトルのみで分岐判定または何か方法があれば、アドバイスをお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問