WordPressのコメント欄を表示する方法

このQ&Aのポイント
  • WordPressで前後の記事のコメント欄を表示する方法について説明します。
  • 投稿オブジェクトとコメントオブジェクトを取得し、赤、青、緑のチームに分けます。
  • 各チームのコメントを表示するコードを追加し、コメントがない場合には「コメントなし」と表示します。
回答を見る
  • ベストアンサー

WordPressの質問(q10006002)の続

前後の記事のコメント欄を標示する方法がわかりません。 <?php $team = get_post_meta($post->ID, 'team', true);//赤、青、緑のチームに分ける // 投稿オブジェクトの取得 if ('red' === $team) { $post_red = $post; // 赤(現在) $post_blue = get_adjacent_post(true, '', false); // 青(現在の次) $post = $post_blue; // 現在を青に置きかえる $post_green = get_adjacent_post(true, '', false); // 緑(現在の次:青の次) $post = $post_red; // 現在を赤に戻す } elseif ('blue' === $team) { $post_blue = $post; // 青(現在) $post_red = get_adjacent_post(true, '', true); // 赤(現在の前) $post_green = get_adjacent_post(true, '', false); // 緑(現在の次) } elseif ('green' === $team) { $post_green = $post; // 緑(現在) $post_blue = get_adjacent_post(true, '', true); // 青(現在の前) $post = $post_blue; // 現在を青に置きかえる $post_red = get_adjacent_post(true, '', true); // 赤(現在の前:青の前) $post = $post_green; // 現在を緑に戻す } /*$post_thumbnail_id = get_post_thumbnail_id($post);//画像の投稿データから画像IDを取得する ※おそらくいらない */ $red_post_thumbnail_id = get_post_thumbnail_id($post_red);//赤、青、緑の投稿データから前後の画像IDを取得する $blue_post_thumbnail_id = get_post_thumbnail_id($post_blue); $green_post_thumbnail_id = get_post_thumbnail_id($post_green); $red_post_image_src = wp_get_attachment_image_src($red_post_thumbnail_id);//赤、青、緑の投稿データから前後の画像URLを取得する $blue_post_image_src = wp_get_attachment_image_src($blue_post_thumbnail_id); $green_post_image_src = wp_get_attachment_image_src($green_post_thumbnail_id); /*$post_id = post_id ($post_red,$post_blue,$post_green);*/ ※$argsで設定済みなので多分必要ない // コメントオブジェクトの取得 $args = [ 'author__not_in' => '1', // 管理者を除く 'status' => 'approve', // 承認済み 'type' => 'comment', // コメント ]; $args['post_id'] = $post_red->ID; // 赤のID $comments_red = get_comments($args); // 赤のコメント $args['post_id'] = $post_blue->ID; // 青のID $comments_blue = get_comments($args); // 青のコメント $args['post_id'] = $post_green->ID; // 緑のID $comments_green = get_comments($args); // 緑のコメント // コメントの表示 if (empty($comments_red)) { echo '<p>コメントなし</p>'; } else { echo '<ul>'; foreach ($comments_red as $comment) { echo "<li>{$comment->comment_content}</li>"; } echo '</ul>'; } if (empty($comments_blue)) { echo '<p>コメントなし</p>'; } else { echo '<ul>'; foreach ($comments_blue as $comment) { echo "<li>{$comment->comment_content}</li>"; } echo '</ul>'; } if (empty($comments_green)) { echo '<p>コメントなし</p>'; } else { echo '<ul>'; foreach ($comments_green as $comment) { echo "<li>{$comment->comment_content}</li>"; } echo '</ul>'; }

  • PHP
  • 回答数63
  • ありがとう数96

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.63

【投稿ページ その3】 ・break,continue構文以外で$offsetをコントロールする方法を探しているんですが、何か良い方法はありますでしょうか? こまかくわけるとこうですね。 ==== RSS バナー広告 記事前編 RSS バナー広告 記事続編 RSS コメント 前後の記事リンク ==== RSSと他のものの登場回数が異なるのでループしない方法でいきましょう。 最初にデータベースからRSSを取得して、$rss1、$rss2、$rss3のみっつに分けてためておきます。 あとはそのまま出力する方法でどうでしょうか。 ---- $rss1の出力 バナー広告 記事前編 $rss2の出力 バナー広告 記事続編 $rss3の出力 コメント 前後の記事リンク ----

php_learn
質問者

お礼

可能であればRSSのURLは固定ページと投稿ページで別のものにしたいですが負荷が多少心配です。

php_learn
質問者

補足

【投稿ページ その3】 ・break,continue構文以外で$offsetをコントロールする方法を探しているんですが、何か良い方法はありますでしょうか? こまかくわけるとこうですね。 ==== RSS バナー広告 記事前編 RSS バナー広告 記事続編 RSS コメント 前後の記事リンク ==== RSSと他のものの登場回数が異なるのでループしない方法でいきましょう。 最初にデータベースからRSSを取得して、$rss1、$rss2、$rss3のみっつに分けてためておきます。 あとはそのまま出力する方法でどうでしょうか。 ---- $rss1の出力 バナー広告 記事前編 $rss2の出力 バナー広告 記事続編 $rss3の出力 コメント 前後の記事リンク ---- A.回答ありがとうございます。RSSの出力については理解できたのですが、今のstorage_rss.phpと処理を分けるのか気になります。RSSは同じサイトから出力する予定です。 画像1,画像2,画像3は固定ページと投稿ページそれぞれ同じサイトのURLからを引っ張ります。 画像1タイトル1の固定投稿ページのRSS 画像2タイトル1の固定投稿ページのRSS 画像3タイトル1の固定投稿ページのRSS でURLは同じものにします。 それともSQLから操作するのでしょうか?

その他の回答 (62)

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.42

【RSS その13】 ・1度cronを削除してみましたが表示されない状態です。何かしらコードに問題があるようですがどこから確認すればよいかわからず修正できません。アドバイスをお願い致します。 いただいたコードfront-page.phpでRSSは表示されています。 page-secound.phpとpage-third.phpの呼び出し方法がわからないので私の環境では確認できませんが、それぞれテーブルが別になっていますので、まず、それぞれのテーブルにデータがあるかどうか確認してください。

php_learn
質問者

お礼

ファイルが読み込まれているか確認したところ出力されていないので失敗しているようです。 ※in.phpをwp-load.phpと同じ階層に設置 <?php echo "1回目<br>"; echo "Hello World!"; echo "<hr>"; echo "2回目<br>"; echo "Hello World!"; echo "<hr>"; echo "3回目<br>"; echo "Hello World!"; ?>

php_learn
質問者

補足

テーブルを確認しましたが空の状態です。アクセスしても表示されていない状態です。 それぞれ固定ページのテンプレートにしています。 以前wordpressをもう1ついれて初めからcron化させてみようとしたところRSSを取得できませんでした。 strong.phpを作成する前に戻ってから段階を踏んで表示すると上手くいきました。ですが画像2タイトル1と画像3タイトル1はこの際も表示されませんでした。 wp-load.phpが正常に読み込まれていないのではないでしょうか? 確かめる方法などはありますでしょうか? ※テンプレートページ https://imgur.com/jeisTiv.jpg https://imgur.com/Z5ABDV7.jpg <?php /* Template Name: 画像2タイトル1 Template Post Type: page */ ?> <?php /* Template Name: 画像3タイトル1 Template Post Type: page */ ?> ※全体のコード https://wandbox.org/permlink/D75VeLhEZbpnAEUq

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.41

【固定ページ その8】 画像が取得できているのはもとの表示コードがあったタイミングだけです。 RSSでため込む方式したように、そのタイミングでため込んでおいて、あとで一括出力してみましょう。 追加修正の個所は、画像をため込む変数の初期化、画像をため込む、ため込んだ画像を出力、の三か所です。 ----page-secound.php echo '<h3>投稿</h3>'; echo '<div id="entry-content">'; // 記事全体のid for ($k = 0; $k < $group_per_block; ++$k) { // ここから画像とタイトルの処理 /* 画像をため込む変数の初期化 */ $images = ''; for ($j = 0; $j < $posts_per_group; ++$j) { $item_index = $i * $group_per_block * $posts_per_group + $k * $posts_per_group + $j; // 画像2のときに2番目のタイトルを保存に変える if ($item_index >= count($post_items)) { break; } $item = $post_items[$item_index]; set_other_data($item); // ここからページナビまで変更 if (1 == $j) { // 真ん中の記事を保存して、タイトルを設定 $keep_item = $item; $title = '<br>'.$item->post_title; } else { // 真ん中以外のタイトルを設定 $title = ''; } /* 画像をため込む */ $images .= "<a href=\"{$item->guid}\"><img src=\"{$item->thumbnail}\"></a>"; } // タイトルの保存は省略 // ここから追加 echo '<div class="entry-post">'; // 記事1つ1つ echo "<figure class=\"entry-thumnail\">{$images}</figure>"; /* ため込んだ画像を出力 */ echo '<header class="entry-header">'; echo "<h2 class=\"entry-title\"><a href=\"{$item->guid}\">{$item->post_title}</a></h2>"; // タイトル echo '<p class="post-meta">'; // 日付け、カテゴリー、コメント数 echo '<span class="fa-clock"></span>'; // 日付けのマーク fontawesomeをbeforeで読み込む echo "<span class=\"published\">{$item->post_date}</span>"; // 日付け echo '<span class="fa-folder"></span>'; // カテゴリーのマーク fontawesomeをbeforeで読み込む echo '<span class="category-link">'; if ($item->categories) { foreach ($item->categories as $cat_ID) { $category = $categories[$cat_ID]; echo "<a href=\"{$category->category_link}\">{$category->cat_name}</a>"; } } echo '</span>'; // カテゴリー echo '<span class="fa-comment"></span>'; // コメント数のマーク fontawesomeをbeforeで読み込む echo "<span class=\"comment-count\"><a href=\"{$item->guid}\">{$item->comments}</a></span>"; // コメント数 echo '</p>'; echo '</header>'; echo "<p class=\"entry-snippet\">{$item->post_excerpt}</p>"; echo '</div>'; // 記事1つ1つ } echo '</div>'; // 記事全体のid ---- 複数の画像をまとめてひとつのfigureタグで括っていますので、もしそれぞれの画像を個別にfigureタグで括りたい場合は、画像をため込む、のところにfigureタグを書き、ため込んだ画像を出力、のところは$imagesだけにしてください。

php_learn
質問者

お礼

上の回答の続きになります。 一度front-page.phpでファイルまでのパスが通っているか確認するために、in.phpのパスをrequire_once 'wp-load.php';に変更したところ表示されました。 そのほかcronを変更してみましたが変化はありませんでした。 参考サイトの2番目の対策を見て下記のようにしてみましたが変化はありませんでした。 <?php #!home/gtyaszhi/public_html/wp-content/themes/sample_theme require_once 'wp-load.php'; /* RSSの保存 引数(テンプレート番号) */ storage_rss(1); ・ ・ ・ etc… 4. 実行ファイルのパーミッションは適切か(参考サイト) これもstorage_rss_phpをパーミッション0755にしましたが変化なしです。 4番目の対策を下記のコマンドに変更してcronを実行しましたが、result.txtには何も入っていません。 /usr/bin/php /home/gtyaszhi/public_html/wp-content/themes/sample_theme/storage_rss.php > /usr/bin/php /home/gtyaszhi/public_html/wp-content/themes/sample_theme/result.txt 2>&1 ※参考サイト https://kodak-ism.com/cpanel-cronjob/

php_learn
質問者

補足

【固定ページ その8】 画像が取得できているのはもとの表示コードがあったタイミングだけです。 RSSでため込む方式したように、そのタイミングでため込んでおいて、あとで一括出力してみましょう。 追加修正の個所は、画像をため込む変数の初期化、画像をため込む、ため込んだ画像を出力、の三か所です。 A.ため込んで出力ですねありがとうございます。勉強になりました。 1点だけお聞きしたいのですが画像3タイトル1の場合にも同様に修正した場合、真ん中ではなく最後(3番目)のタイトルが表示されています。 以前は真ん中が表示されていたのですがどういう理由が考えられるでしょうか?

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.40

【固定ページ その6】 ・3ファイルともコードの整理機能をかけてみました。下記コードは上手くいかなかったため1列にしております。 echo "<p class=\"entry-snippet\">{$item->post_excerpt}</p>"; echo '</div>';//記事1つ1つ echoの前に全角スペースがあったからだと思います。 改行してください。 ・画像は1件ずつしか表示されておりません。 画像の出力処理を削除したためです。 もとに戻してください。 ・RSSも機能していないようで、表示されていないため何かしら対策が必要のようです… RSSのデータがなくなっているのではないですか。 cronの設定を削除したままとか。

php_learn
質問者

お礼

https://wandbox.org/permlink/ItihOzvUSXDLnVRu 修正コードはこちらになります。

php_learn
質問者

補足

【固定ページ その6】 ・3ファイルともコードの整理機能をかけてみました。下記コードは上手くいかなかったため1列にしております。 echo "<p class=\"entry-snippet\">{$item->post_excerpt}</p>"; echo '</div>';//記事1つ1つ echoの前に全角スペースがあったからだと思います。 改行してください。 A.修正致しました。 ・画像は1件ずつしか表示されておりません。 画像の出力処理を削除したためです。 もとに戻してください。 A.伝え方が悪く申し訳ありません。元のコードではクラスを1つ1つに出力できず、つけたいクラスを付けられなかったためfront-page.phpのように変更したいのですが どうすればいいでしょうか? 下記のコードをif内に設置したいのですがそのまま設置すると画像が1件ずつ表示されてしまうので困っております。 echo '<div class="entry-post">'; // 記事1つ1つ echo "<figure class=\"entry-thumnail\"><a href=\"{$item->guid}\"><img src=\"{$item->thumbnail}\"></a></figure>"; // サムネイル画像 echo '<header class="entry-header">'; echo "<h2 class=\"entry-title\"><a href=\"{$item->guid}\">{$item->post_title}</a></h2>"; // タイトル ※参考画像 https://i.imgur.com/zkvLinx.jpg ・RSSも機能していないようで、表示されていないため何かしら対策が必要のようです… RSSのデータがなくなっているのではないですか。 cronの設定を削除したままとか。 A.1度cronを削除してみましたが表示されない状態です。何かしらコードに問題があるようですがどこから確認すればよいかわからず修正できません。アドバイスをお願い致します。

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.39

【固定ページ その5】 ・page-secound.phpのタイトルと画像の部分をfront-page.phpを参考に変更して表示部分を整えてみたのですが、 2番目のタイトルを保存する場合とそれ以外でhtml classは同じでいいのでしょうか? front-page.phpと同じhtml classのつけ方で問題ないような気がしているのですがどうでしょうか? 全角スペースが修正されていません。 実行するとエラーになります。 page-secound.phpには他にもエラー箇所がいくつかあります。 classのつけ方は同じでいいと思います。 ですが、スタイルシートのためのものなら、同じスタイルでいいかどうかによるので、私では判断できません。

php_learn
質問者

補足

【固定ページ その5】 ・page-secound.phpのタイトルと画像の部分をfront-page.phpを参考に変更して表示部分を整えてみたのですが、 2番目のタイトルを保存する場合とそれ以外でhtml classは同じでいいのでしょうか? front-page.phpと同じhtml classのつけ方で問題ないような気がしているのですがどうでしょうか? 全角スペースが修正されていません。 実行するとエラーになります。 page-secound.phpには他にもエラー箇所がいくつかあります。 classのつけ方は同じでいいと思います。 ですが、スタイルシートのためのものなら、同じスタイルでいいかどうかによるので、私では判断できません。 A.3ファイルともコードの整理機能をかけてみました。下記コードは上手くいかなかったため1列にしております。 echo "<p class=\"entry-snippet\">{$item->post_excerpt}</p>"; echo '</div>';//記事1つ1つ classを同じようにつけたところ画像2タイトル1の場合1番目の記事画像とタイトルと日付けとカテゴリーとコメント数が表示されております。 画像は1つしか表示されておりません。 これはおそらく//本来コードが入っていた場所から外れた位置に画像とタイトルコードを追加したからだと考えたのですが、 if{}内に配置してみたところ、今度は画像もタイトルも1件ずつ表示されてしまいます。 画像のみ2件でタイトルは2番目を保存と計算していた気がするのですが、1番目に切り替わっている気がします。 これで問題はないのですが、どこから切り替わったのか気になります。 画像3タイトル1も表示してみたのですが、同様に1番目の記事画像とタイトルと日付けとカテゴリーとコメント数が表示されております。 画像は1件ずつしか表示されておりません。RSSも機能していないようで、表示されていないため何かしら対策が必要のようです… 記事とRSSそれぞれどこから手をつければよいか分からずアドバイスお願い致します。 //ここからページナビまで変更 if (1 == $j) { //真ん中の記事を保存して、タイトルを設定 $keep_item = $item; $title = '<br>'.$item->post_title; } else { //真ん中以外のタイトルを設定 $title = ''; } //本来コードが入っていた場所 } ※画像とタイトル部分の表示コード  echo "<figure class=\"entry-thumnail\"><a href=\"{$item->guid}\"><img src=\"{$item->thumbnail}\"></a></figure>"; // サムネイル画像 echo '<header class="entry-header">'; echo "<h2 class=\"entry-title\"><a href=\"{$item->guid}\">{$item->post_title}</a></h2>"; // タイトル ※表示画面 https://imgur.com/1TdKRQI.jpg (front-page.phpと同じように画像とタイトルをif外に書いたコード) https://imgur.com/zkvLinx.jpg(ifの条件分岐の中に画像とタイトルを書いたコード) ※コードの整理をかけてコードエラー確認をしたコード https://wandbox.org/permlink/R5M1oPiwLF7kzsb6 ※画像3タイトル1の表示画面 https://imgur.com/DKDVsy4.jpg(front-page.phpと同じように画像とタイトルをif外に書いたコード)

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.38

【固定ページ その4】 ・記事1つ1つは'<div class="entry-post">';  記事全体を'<div id="entry-content">'; で覆いたいのですが 書き換えたコードで問題ないでしょうか?記事全体を覆う方法が分からなかったため //ここから画像とタイトルの処理の前に設定いたしました。 全体の開始はいいと思います。 全体の終了は } ふたつの外側です。 記事1つ1つの終了のechoの前が全角スペースになっているので半角スペースにしてください。

php_learn
質問者

補足

・記事1つ1つは'<div class="entry-post">';  記事全体を'<div id="entry-content">'; で覆いたいのですが 書き換えたコードで問題ないでしょうか?記事全体を覆う方法が分からなかったため //ここから画像とタイトルの処理の前に設定いたしました。 全体の開始はいいと思います。 全体の終了は } ふたつの外側です。 記事1つ1つの終了のechoの前が全角スペースになっているので半角スペースにしてください。 A.ありがとうございます。修正致しました。 page-secound.phpのタイトルと画像の部分をfront-page.phpを参考に変更して表示部分を整えてみたのですが、 2番目のタイトルを保存する場合とそれ以外でhtml classは同じでいいのでしょうか? front-page.phpと同じhtml classのつけ方で問題ないような気がしているのですがどうでしょうか? ※修正コード(front-page.phpとpage-secound.php) https://wandbox.org/permlink/XloOEwg4YQzEVeGE

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.37

【固定ページ その3】 ・1点目は<li>タグについてです。 確認した限りでは適切な場所についておりました。ほしいところに設定されていて<ul>タグも下の階層に設置されているようです。 そうでしょうか。 投稿の出力には<ul>タグがありません。 それと、<ul>タグの子要素には<li>タグしか書けません。 基本構造はこうです。 <ul><li>~</li></ul> ですが、例えばここ、 ---- echo "<figure class=\"entry-thumnail\"><li>(省略) ---- <li>タグの直前に<figure>タグがあります。 <li>タグの親要素は<ul>タグでなければいけません。 もし<ul>タグがあったとするなら、次の順になるべきです。 <ul><li><figure> ・2点目は<a>タグについてになります。それぞれclassとlinkに1つずつ設置されていましたが、位置がバラバラであり統一いたしました。 classのつけ方が他と異なり<a helf>と別に<a class>とつけているようです。 <a class>とするのが通常のhtml classのつけ方だと思うのですが、どちらが正しいのでしょうか? まず、「helf」ではなく「href」です。 コード上も「href」だったところが「helf」になっているので修正してください。 私は<a>タグの二重化を見たことがありません。 classとhrefを別々にする意図がわかりません。 例えばそのclassにスタイルシートを設定したとして、それが反映されるのはそのclassがある方だけです。 スタイルシートの性質として、その子要素にも反映されることもありますが、それを期待するなら、なおさらclassとhrefをひとつの<a>タグにまとめて何の問題があるでしょうか。 <a>タグにはhrefを書けるわけですから、classの方にhrefの方とは違うhrefを書くことができます。 もし別々のhrefを書いたら、クリックしたときにどちらに飛ばされると思いますか。 そのようなはっきりしない動作を起こすような記述は許されていないはずです。 つまり、<a>タグの中に<a>タグを書くのは間違いだと思ってください。 もしかすると、テクニックとして二重化することがあるかもしれません。 あるひとつの要素はクリックするとAに飛びたいが、その要素の中に部分的にBに飛びたいことがあったりするので、そんな場合には二重化して実現できるかもしれません。 にしても、片方にしかhrefを書かないのであれば、このような手法ではありませんね。 もしスタイルシートのためのclassを別に書きたいのであれば、<a>タグではなく、<div>タグや<span>タグなどでいいと思います。

php_learn
質問者

補足

【固定ページ その3】 そうでしょうか。 投稿の出力には<ul>タグがありません。 それと、<ul>タグの子要素には<li>タグしか書けません。 基本構造はこうです。 <ul><li>~</li></ul> A.アドバイスありがとうございます。勉強になりました。 今回コンテンツを並べるということで<ul><li></li></ul>をつけるよう考えていましたが、SEO対策のため外すことに致しました。 投稿部分のコードを大幅に書き換えております。 1点だけ追加でお聞きしたいのですが、記事1つ1つは'<div class="entry-post">';  記事全体を'<div id="entry-content">'; で覆いたいのですが 書き換えたコードで問題ないでしょうか?記事全体を覆う方法が分からなかったため //ここから画像とタイトルの処理の前に設定いたしました。 ・2点目は<a>タグについてになります。それぞれclassとlinkに1つずつ設置されていましたが、位置がバラバラであり統一いたしました。 classのつけ方が他と異なり<a helf>と別に<a class>とつけているようです。 <a class>とするのが通常のhtml classのつけ方だと思うのですが、どちらが正しいのでしょうか? まず、「helf」ではなく「href」です。 コード上も「href」だったところが「helf」になっているので修正してください。 もしスタイルシートのためのclassを別に書きたいのであれば、<a>タグではなく、<div>タグや<span>タグなどでいいと思います。 A.解説ありがとうございます。<a class=\"\"></a>というクラスをあまり見かけない理由が分かりました。 これは<div>タグや<span>タグに変わってるんですね。 hrefに修正致しました。覚えておきます。 ※修正後のコード(画像とタイトル以外の共通部分のコードをcontent.phpに書き出しました) https://wandbox.org/permlink/gGq36PDMUjamFHik

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.36

【固定ページ その2】 ・保存とhtml class付きでechoを上手くまとめる方法はありますでしょうか? 保存のことは気にしないでいてください。 画像をどう組み込むかはあとで考えてください。 まずは以下のechoの部分をfront-page.phpと同じように(?)、と言うか、付けたいようにhtml classを付けてみてください。 ---- echo '<ul>'; echo "<li>{$item->post_date}</li>"; if ($item->categories) { foreach ($item->categories as $cat_ID) { $category = $categories[$cat_ID]; echo "<li>{$category->cat_name}</li>"; } } echo "<li><a href=\"{$item->guid}\">{$item->comments}</a></li>"; echo "<li>{$item->post_excerpt}</li>"; echo '</ul>'; ---- その前に、front-page.phpにいくつか問題がありますので修正してください。 222行目に不具合を発生させる記号 ^ が含まれているので削除してください。 ----front-page.php $posts_per_page = $block_per_page * $group_per_^block * $posts_per_group; // ページあたり投稿件数 ---- <article>タグの終端がないので追加してください。 不要と思われる<li>タグがたくさんあるので削除してください。 もし必要でしたら<ul>タグの子要素として直下の階層に配置されるようにしてください。 <h2>のテキストと終端がありません。 不要でしたら削除してください。 必要でしたらテキストと終端を追加してください。 <a>タグの始端と終端が一致していないので一致させてください。 </a>があるべきところになかったり、不要なところにあったりします。 もしくは<a>タグではないものが<a>タグになっているのかも。 <a class="entry-title"> <a class="category-link"> <a class=" comment-count"> <span>タグのclassの後ろの " が欠落しています。 <span class="fa-clock> <span class="fa-folder> 以上を修正してから、2画像、3画像に対応してください。

php_learn
質問者

補足

【固定ページ その2】 保存のことは気にしないでいてください。 画像をどう組み込むかはあとで考えてください。 まずは以下のechoの部分をfront-page.phpと同じように(?)、と言うか、付けたいようにhtml classを付けてみてください。 A.了解いたしました。確認してみたところ画像とタイトル以外はすべて同じようになりました。 その前に、front-page.phpにいくつか問題がありますので修正してください。 不要と思われる<li>タグがたくさんあるので削除してください。 もし必要でしたら<ul>タグの子要素として直下の階層に配置されるようにしてください。 <a>タグの始端と終端が一致していないので一致させてください。 </a>があるべきところになかったり、不要なところにあったりします。 もしくは<a>タグではないものが<a>タグになっているのかも。 <a class="entry-title"> <a class="category-link"> <a class=" comment-count"> A.2点分からないことがありまして、1点目は<li>タグについてです。 確認した限りでは適切な場所についておりました。ほしいところに設定されていて<ul>タグも下の階層に設置されているようです。 2点目は<a>タグについてになります。それぞれclassとlinkに1つずつ設置されていましたが、位置がバラバラであり統一いたしました。 classのつけ方が他と異なり<a helf>と別に<a class>とつけているようです。 <a class>とするのが通常のhtml classのつけ方だと思うのですが、どちらが正しいのでしょうか? ※修正コード(code.phpは画像とタイトル以外のコード) https://wandbox.org/permlink/GiAF1qmLsBgKP6ci classのつけ方がわからないため、 保存部分はそのままにしております。

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.35

【固定ページ その1】 ・固定ページ3パターンの表示を確認したいのですが、投稿記事のclassをfront-page.phpのようにまとめきれません… どのようにまとめたいのかわかりませんが、WinMergeと言うファイル比較ツールがありますので、まずはこれで比較しながら、3パターンで個別のコード部以外は、統一してみてください。 そのうえで個別のコード部をどのようにするか考えた方がいいと思います。 以前いただいてたスクリーンショットのタスクバーにテキストエディタのAtomのアイコンが見えました。 Atomにファイル比較機能があればそちらを使っていただいてもかまいません。

php_learn
質問者

お礼

補足で修正ファイルと該当コードが抜けておりました。 ※修正ファイル https://wandbox.org/permlink/71A57LvNhLHnMJKd ※該当コード //ここからページナビまで変更 if (1 == $j) { //2番目の記事を保存して、タイトルを設定 $keep_item = $item; $title = '<br>'.$item->post_title; } else { //2番目以外のタイトルを設定 $title = ''; } echo "<li><a href=\"{$item->guid}\"><img src=\"{$item->thumbnail}\">{$title}</a></li>"; } // タイトルの保存は省略 // ここから追加 $item = $keep_item; echo '<ul>'; echo "<li>{$item->post_date}</li>"; if ($item->categories) { foreach ($item->categories as $cat_ID) { $category = $categories[$cat_ID]; echo "<li>{$category->cat_name}</li>"; } } echo "<li><a href=\"{$item->guid}\">{$item->comments}</a></li>"; echo "<li>{$item->post_excerpt}</li>"; echo '</ul>'; } }

php_learn
質問者

補足

【固定ページ その1】 どのようにまとめたいのかわかりませんが、WinMergeと言うファイル比較ツールがありますので、まずはこれで比較しながら、3パターンで個別のコード部以外は、統一してみてください。 そのうえで個別のコード部をどのようにするか考えた方がいいと思います。 以前いただいてたスクリーンショットのタスクバーにテキストエディタのAtomのアイコンが見えました。 Atomにファイル比較機能があればそちらを使っていただいてもかまいません。 A.アドバイスありがとうございます。コードを比較したところ重複コードが出てきたので修正致しました。 コードを色で比較するツールは初めて知りました。覚えておきます。 投稿記事の出力にhtml classを付けたいのですが、 page-secound.phpとpage-third.phpはfront-page.phpと違い途中で画像とタイトルの保存を入れているため、どのように変形すればよいかわからない状態です。 保存とhtml class付きでechoを上手くまとめる方法はありますでしょうか?

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.34

【カテゴリー その37】 ・category.php自体にはカテゴリーランキングを設置することはできますでしょうか? 難しいのであればやめておきます。 設置できます。 front-page.phpとまったく同じなので簡単です。 ・カウントをcategory.phpでしている場合、ランキングとは重複があるので難しいのではないかと感じております。 重複が気になるのはわかりますが、流れで考えてみてください。 1.一覧画面にカテゴリーランキングを表示 2.カテゴリーリンクがクリックされた 3.カテゴリーページへ遷移してきた 4.カウントアップされた 5.ランキングを表示する もしですよ、1の時点で、同点一位のカテゴリーがふたつあったとします。 どちらも一位ですが表示はどちらかが上に、どちらかが下に表示されています。 2の時点で、下の方をクリックされた場合、それによって一点リードしなくてはいけません。 すると、4でカウントアップした後に、5ランキング表示した時には、下にあった方が上になる、というわけです。

php_learn
質問者

補足

設置できます。 front-page.phpとまったく同じなので簡単です。 A.ありがとうございます。設置することができました。 もしですよ、1の時点で、同点一位のカテゴリーがふたつあったとします。 どちらも一位ですが表示はどちらかが上に、どちらかが下に表示されています。 2の時点で、下の方をクリックされた場合、それによって一点リードしなくてはいけません。 すると、4でカウントアップした後に、5ランキング表示した時には、下にあった方が上になる、というわけです。 A.説明ありがとうございます。勉強になりました。 固定ページ3パターンの表示を確認したいのですが、投稿記事のclassをfront-page.phpのようにまとめきれません… アドバイスお願い致します。 ※該当コード https://wandbox.org/permlink/IA3WicjfGcdKmIMR ※該当箇所 //ここからページナビまで変更 if (1 == $j) { //2番目の記事を保存して、タイトルを設定 $keep_item = $item; $title = '<br>'.$item->post_title; } else { //2番目以外のタイトルを設定 $title = ''; } echo "<li><a href=\"{$item->guid}\"><img src=\"{$item->thumbnail}\">{$title}</a></li>"; } // タイトルの保存は省略 // ここから追加 $item = $keep_item; echo '<ul>'; echo "<li>{$item->post_date}</li>"; if ($item->categories) { foreach ($item->categories as $cat_ID) { $category = $categories[$cat_ID]; echo "<li>{$category->cat_name}</li>"; } } echo "<li><a href=\"{$item->guid}\">{$item->comments}</a></li>"; echo "<li>{$item->post_excerpt}</li>"; echo '</ul>'; } }

  • dell_OK
  • ベストアンサー率13% (740/5647)
回答No.33

【カテゴリー その35】 いただいたコードと差し替えてみましたが、問題なくカウントされます。 原因がわからないですね。 以下の判定関数が期待通りでないのかも知れません。 is_category() is_user_logged_in() isBot() なので、試しに判定なしでcategory_views_week()を呼ぶようにしてみましょう。 ----category.php if (is_category() && !is_user_logged_in() && !isBot()) : //個別記事 かつ ログインしていない かつ 非ボット category_views_week(); //アクセスをカウントする endif; category_views_week(); //アクセスをカウントする ---- endifの下に同じものを追加です。 あと、以下のコードは記事のカウント処理なので削除してください。 ----category.php if (is_single() && !is_user_logged_in() && !isBot()) : //個別記事 かつ ログインしていない かつ 非ボット set_post_views(); //アクセスをカウントする endif; ----

php_learn
質問者

お礼

再度読み込みをしたところ表示することができました。 ありがとうございます。 1点だけお聞きしたいのですがcategory.php自体にはカテゴリーランキングを設置することはできますでしょうか? 難しいのであればやめておきます。 カウントをcategory.phpでしている場合、ランキングとは重複があるので難しいのではないかと感じております。

php_learn
質問者

補足

修正ありがとうございます。カウンターは起動したのですが、アクセスランキングが集計できていませんと出ています。 過去にもアクセスカウンターで表示されなかった記憶があるので過去のdell_okさんとのやり取りを確認してみます。 https://imgur.com/B2QvPOb.jpg

関連するQ&A

  • コメント欄を出力した後に返信機能を追加したい

    カスタムフィールド名をつけて記事を振り分けていきたいのですが、上手くいきませんどうすれば良いでしょうか? $nextID = $post_ids[$current + 1]; //$currentの1つあと $next2ID = $post_ids[$current + 2]; //$currentの2つあと echo '<ul>'; //1つあとの記事のコメント $args = ['post_id' => $nextID, 'number' => 1]; $comments = get_comments($args); if (empty($comments)) { $comment = 'コメントなし'; } else { $comment = $comments[0]->comment_content; } echo "<li>{$comment}</li>"; //2つあとの記事のコメント $args = ['post_id' => $next2ID, 'number' => 1]; $comments = get_comments($args); if (empty($comments)) { $comment = 'コメントなし'; } else { $comment = $comments[0]->comment_content; } echo "<li>{$comment}</li>"; echo '</ul>';

    • ベストアンサー
    • PHP
  • WordPressの質問(q10054200)の続

    display.phpでコメントにハートマークをつけていいねボタンをカウントを実装したいのですが、Font Awesomeとカウントアップを結びつける構造が分かりませんでした。アドバイスお願い致します。 functions.phpにfunction set_post_views_days()と3,7日間のカウンターをまとめているのですが、そちらと合体させたほうがいいでしょうか? 別に実装すべきでしょうか?毎回関係のないコメントのグッドカウントを読み込むのか、別途関数を作成して読み込ませるどちらが負担が軽いのか悩んでいます。 ※カスタムフィールド(view_good_count)でカウント function view_good_btn() { global $cat; $sql = " SELECT c.*, cc.*, vv.meta_value AS good_count FROM wp_commentmeta AS c INNER JOIN wp_comments AS cc ON c.comment_ID = cc.comment_ID WHERE meta_key = 'view_good_count' AND meta_value != 0 ORDER BY vv.meta_value DESC "; $query = $wpdb->prepare($sql); $commentmeta = $wpdb->get_results($query); foreach ($commentmeta as $comment) { $url = get_term_link($comment); <a href=\"{$url}\" width: 97px;height: 130px;> <div class=\"btn-good-wrap\">{$commentmeta->button}</div> </a> <div class=\"container\"> </div> "; } ※Font Awesomeのハートマーク <i class="fa fa-heart" aria-hidden="true"></i> ※ボタンカウントで悩んでいるコード https://wandbox.org/permlink/7AQ5Sunt8Ok2NQhE

    • ベストアンサー
    • PHP
  • SQLに条件を追加したいのですが方法が分かりません

    <?php $search_query = get_search_query(); ?> <?php global $wpdb; ?> <?php $sql = " SELECT COUNT(*) AS all_count FROM wp_posts AS post INNER JOIN ( SELECT * FROM wp_postmeta WHERE meta_key='single_rss_feed1' ) AS feed ON post.ID = feed.post_id LEFT JOIN ( SELECT * FROM wp_postmeta WHERE meta_key = '_thumbnail_id' ) AS thumbnail ON post.ID = thumbnail.post_id LEFT JOIN wp_posts AS attachment ON thumbnail.meta_value = attachment.ID LEFT JOIN ( SELECT category.object_id AS post_id, GROUP_CONCAT(category.name ORDER BY category.term_id) AS category_names, GROUP_CONCAT(category.slug ORDER BY category.term_id) AS category_slugs FROM ( SELECT sub_a.name, sub_a.slug, sub_c.object_id, sub_a.term_id FROM wp_terms AS sub_a LEFT JOIN wp_term_taxonomy AS sub_b ON sub_a.term_id = sub_b.term_id LEFT JOIN wp_term_relationships AS sub_c ON sub_b.term_taxonomy_id = sub_c.term_taxonomy_id WHERE sub_b.taxonomy = 'category' ) AS category GROUP BY category.object_id ) AS category ON post.ID = category.post_id WHERE post.post_type = 'post' AND post.post_status = 'publish' AND post.post_content LIKE %s OR post.post_title LIKE %s OR post.post_excerpt LIKE %s) $query = $wpdb->prepare($sql, "%$search_query%", "%$search_query%", "%$search_query%"); $results = $wpdb->get_results($query); ?> <?php if ($results) : ?> <ul> <?php foreach ($results as $result) : ?> <li> <?php echo "<a href=\"{$result->post_url}\">{$result->post_title}</a>"; echo $result->post_date; echo $result->category_names; if (empty($result->comment_count)) { echo 'コメントなし'; } else { echo "{$result->comment_count}件のコメント"; } echo $result->post_excerpt; echo "<a href=\"{$result->post_url}/#more-{$result->post_id}/\">続きを読む</a>"; if (empty($result->thumbnail_url)) { $result->thumbnail_url = 'noimage.jpg'; } echo "<img src=\"{$result->thumbnail_url}\">"; ?> </li> <?php endforeach; ?> </ul> <?php endif; ?> ※追加したい条件 $categories = []; foreach (get_categories() as $category) { $categories[$category->cat_ID] = $category; } function set_other_data($post) { // アイキャッチIDを取得 $post_thumbnail_id = get_post_thumbnail_id($post); // アイキャッチ画像の確認 if ($post_thumbnail_id) { // 存在する $image_src = wp_get_attachment_image_src($post_thumbnail_id); // サムネイルの画像URLを設定 $post->thumbnail = $image_src[0]; } else { // 存在しない $post->thumbnail = 'noimage.jpg'; } // カテゴリーIDを取得 $post->categories = wp_get_post_categories($post->ID); // コメントテキスト if (0 == $post->comment_count) { // コメントなし $post->comments = __('No Comments'); } else { // コメントあり $post->comments = $post->comment_count.'件のコメント'; } // コメントリンク $post->comments_link = get_comments_link($post->ID); }

    • ベストアンサー
    • PHP
  • WordPressの コメント欄 に関する質問です(2)

    WordPressの コメント欄 に関する質問です(2) コメントのURLを必須にする方法をを調査しています 名前 aaaaaaaaaaaaaaaaaaaa メールアドレス bbbbbbbbbbbbbbbbb URL  cccccccccccc を入力する箇所が下記にあります 名前とメールアドレスは必須ですが、 URLを必須にするにはどのような記述にすればいいのでしょうか? 元になる全文はこちらです http://44fsdfa.blogspot.com/p/blog-page.html 下記のように 変更しましたが、URLを入力しなくてもすんなり投稿されてしまいます URLもメールと同じように必須にするには 他にどこを見ればいいのでしょうか? -------------------------------------- <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php if ( is_user_logged_in() ) : ?> <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.', 'kubrick'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php _e('Log out of this account', 'kubrick'); ?>"><?php _e('Log out &raquo;', 'kubrick'); ?></a></p> <?php else : ?> <p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="author"><?php _e('aaaaaaaaaaaaaaaa', 'kubrick'); ?> <?php if ($req) _e("(公開)", "kubrick"); ?></label></p> <p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="email"><?php _e('bbbbbbbbbbbbbbbb (必須)', 'kubrick'); ?> <?php if ($req) _e("(非公開)", "kubrick"); ?></label></p> <p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="3" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="author"><?php _e('ccccccccccccccccc', 'kubrick'); ?> <?php if ($req) _e("(公開)", "kubrick"); ?></label></p> <?php endif; ?>

    • ベストアンサー
    • PHP
  • WordPressの コメント欄 に関する質問です

    WordPressの コメント欄 に関する質問です コメントのURLを必須にする方法をを調査しています 名前 aaaaaaaaaaaaaaaaaaaa メールアドレス bbbbbbbbbbbbbbbbb URL  cccccccccccc を入力する箇所が下記にあります 名前とメールアドレスは必須ですが、 URLを必須にするには どのような記述にすればいいのでしょうか? -------------------------------------- <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php if ( is_user_logged_in() ) : ?> <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.', 'kubrick'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php _e('Log out of this account', 'kubrick'); ?>"><?php _e('Log out &raquo;', 'kubrick'); ?></a></p> <?php else : ?> <p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="author"><?php _e('aaaaaaaaaaaaaaaa', 'kubrick'); ?> <?php if ($req) _e("(公開)", "kubrick"); ?></label></p> <p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="email"><?php _e('bbbbbbbbbbbbbbbb (必須)', 'kubrick'); ?> <?php if ($req) _e("(非公開)", "kubrick"); ?></label></p> <p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" /> <label for="url"><?php _e('cccccccccccccccc', 'kubrick'); ?><?php if ($req) _e("(公開)", "kubrick"); ?></label></p> <?php endif; ?> ----------------------------- 全文はこちらです http://44fsdfa.blogspot.com/p/blog-page.html

    • ベストアンサー
    • PHP
  • WordPressで孫ページ一覧を取得

    下記のコードで子ページ一覧を取得していたのですが、子ページ一覧ではなく孫ページ一覧を取得する必要が出てきました。 <?php $parentId = get_the_ID(); $args = 'posts_per_page=-1&post_type=page&orderby=menu_order&post_parent='.$parentId; query_posts($args); if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="child-box"> <a href="<?php the_permalink(); ?>"><img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>" width="190" alt=""></a> <p class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p> <p>価格:<span class="price"><?php $selling_price = get_field('selling_price'); echo $selling_price."円"; ?></span></p> </div> <?php endwhile;?> <?php wp_reset_query(); ?> <?php else:?> <?php endif;?> 上記のような形で孫ページ一覧を取得する方法をご存知のかた、是非ご教授ください。

    • ベストアンサー
    • PHP
  • Wordpressにおいてカスタム投稿の読み込み

    Wordpressにて美容系ポータルサイトを作っています。 お店情報のカスタム投稿 口コミのカスタム投稿 の二つ、そしてトップページとの連動を作りたいと思っています。 まずはお店情報にはサロン名やら営業時間やらキャンペーンメニューなどがポストタイプ(salon_posttype)にて入っています。 口コミには行ったサロン名や、感想、名前などがポストタイプ(review_posttype)で入っています。 そこでお店情報のページに、 そのお店の口コミの投稿を表示させたいと思っています。 つまり、review_posttypeにて入れた、'salonname'のキーがそのページのページ名=(サロン名)と同じであれば表示、で行けるかなと構文を書きましたが、ここからがわかません。 <?php query_posts('&post_type=review_posttype'); while(have_posts()) : the_post(); ?> <?php if( get_post_meta(get_the_ID(), 'salonname', true) != '' ):?> ↑↑↑ここを"もしsalonname=今見ているページの題名なら"にしたいです。↑↑↑ <p class="title"><?php echo get_post_meta(get_the_ID(), 'salonname', true);?></p> <p class="naiyou"><?php echo get_post_meta(get_the_ID(), 'review_naiyou', true);?></p> <p class="detail"><a href="<?php the_permalink() ?>">詳しくはこちら</a></p> <?php endif;?> <?php endwhile; ?> <?php wp_reset_query(); ?> どこをどうしたらいいでしょうか?そもそもここまでも合っていますか?

    • 締切済み
    • PHP
  • Wordpressのコメント欄受付・表示について。

    WordPress 2.8.6で構築 現在全てのブログでコメント受付が非表示になっていますが、その中の1つのカテゴリのブログだけでコメント欄を表示させるのが目的です。 phpの知識が追い付かずネットでも解決方法が見つけられず、以下のcomments.phpを修正してカテゴリの設定を変更するイメージでしたが理解が追い付きません。 どなたかお詳しい方いらっしゃいますでしょうか? <?php // Do not delete these lines if (isset($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if ( post_password_required() ) { ?> <p class="nocomments"><?php _e('This post is password protected. Enter the password to view comments.', 'kubrick'); ?></p> <?php return; } ?> <!-- You can start editing here. --> <?php if ( have_comments() ) : ?> <h3 id="comments"><?php comments_number(__('No Responses', 'kubrick'), __('One Response', 'kubrick'), __('% Responses', 'kubrick'));?> <?php printf(__('to “%s”', 'kubrick'), the_title('', '', false)); ?></h3> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <ol class="commentlist"> <?php wp_list_comments();?> </ol> <div class="navigation"> <div class="alignleft"><?php previous_comments_link() ?></div> <div class="alignright"><?php next_comments_link() ?></div> </div> <?php else : // this is displayed if there are no comments so far ?> <?php if ( comments_open() ) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments"><?php _e('Comments are closed.', 'kubrick'); ?></p> <?php endif; ?> <?php endif; ?> <?php if ( comments_open() ) : ?> <div id="respond"> <h3><?php comment_form_title( __('Leave a Reply', 'kubrick'), __('Leave a Reply for %s' , 'kubrick') ); ?></h3> <div id="cancel-comment-reply"> <small><?php cancel_comment_reply_link() ?></small> </div> <?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?> <p><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.', 'kubrick'), wp_login_url( get_permalink() )); ?></p> <?php else : ?> <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php if ( is_user_logged_in() ) : ?> <p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.', 'kubrick'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php _e('Log out of this account', 'kubrick'); ?>"><?php _e('Log out &raquo;', 'kubrick'); ?></a></p> <?php else : ?> <p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="author"><small><?php _e('Name', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p> <p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="email"><small><?php _e('Mail (will not be published)', 'kubrick'); ?> <?php if ($req) _e("(required)", "kubrick"); ?></small></label></p> <p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" /> <label for="url"><small><?php _e('Website', 'kubrick'); ?></small></label></p> <?php endif; ?> <!--<p><small><?php printf(__('<strong>XHTML:</strong> You can use these tags: <code>%s</code>', 'kubrick'), allowed_tags()); ?></small></p>--> <p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p> <p><input name="submit" type="submit" id="submit" tabindex="5" value="<?php _e('Submit Comment', 'kubrick'); ?>" /> <?php comment_id_fields(); ?> </p> <?php do_action('comment_form', $post->ID); ?> </form> <?php endif; // If registration required and not logged in ?> </div> <?php endif; // if you delete this the sky will fall on your head ?>

    • ベストアンサー
    • PHP
  • 「CSSで1つの要素に複数のクラスを指定する」に対応したブラウザは?

    恥ずかしながら、最近ようやく『同一idは一つのページ内で複数用いるべきではない』の意図するところが分かってきました。これまで、この事を理解していなかったがために、 aaa ←文字色:青、背景色:黄 bbb ←文字色:緑、背景色:黄 ccc ←文字色:青、背景色:赤 ddd ←文字色:緑、背景色:赤 といった表現を実現するために、 ---CSSファイル内の記述--- .blue{color:blue;} .green{color:green;} #bg_yellow{background-color:yellow;} #bg_red{background-color:red;} ---HTMLファイル内の記述---- <div class="blue" id="bg_yellow">aaa</div> <div class="green" id="bg_yellow">bbb</div> <div class="blue" id="bg_red">ccc</div> <div class="green" id="bg_red">ddd</div> というようなソースをよく書いておりました。この場合、idの意味を理解して、解決するには、例えば下の3通りの方法があるように思います。 (1)IDを4つ作成し、1つずつ適用する ---CSSファイル内の記述--- #blue_bg_yellow{color:blue;background-color:yellow;} #green_bg_yellow{color:green;background-color:yellow;} #blue_bg_red{color:blue;background-color:red;} #green_bg_red{color:green;background-color:red;} ---HTMLファイル内の記述---- <div id="blue_bg_yellow">aaa</div> <div id="green_bg_yellow">bbb</div> <div id="blue_bg_red">ccc</div> <div id="green_bg_red">ddd</div> (2)クラスを4つ作成し、1つずつ適用する ---CSSファイル内の記述--- (1)の『#』を『.』にする ---HTMLファイル内の記述---- (1)の『id』を『class』にする (3)クラスを4つ作成し、2つずつ適用する ---CSSファイル内の記述--- .blue{color:blue;} .green{color:green;} .bg_yellow{background-color:yellow;} .bg_red{background-color:red;} ---HTMLファイル内の記述---- <div class="blue bg_yellow">aaa</div> <div class="green bg_yellow">bbb</div> <div class="blue bg_red">ccc</div> <div class="green bg_red">ddd</div> 今回の例では、数も少なく、どれでもそれほど変わらない感じですが、この(3)の書き方には、どれほどのブラウザが対応しているのでしょうか? 個人的に使用しております ・Firefox 2.0 ・Internet Explorer 6.0 では動作するのですが、それ以外のブラウザでの動作に関してご存知の方は、ぜひ教えて下さい。(特にMacは持っていませんので、Macのブラウザの情報は非常にありがたいです) ある程度のブラウザで動作するようなら、 .b,strong{font-weight:bold;} .i,em{font-style:italic;} .u,ins{text-decoration:underline;} .s,del{text-decoration:line-through;} .u_s{text-decoration:underline line-through;} のように、よく使いそうな表現をまとめたスタイルシートを作ろうかな、などと考えております。打ち消しながら下線引く事なんかはまずないとは思いますが、これは例えばの話です。 長文を最後までお読みいただきありがとうございました。

    • 締切済み
    • CSS
  • RSSと投稿記事を交互に表示させたい

    内容の修正が必要ですが原因がわかりません 1.投稿に画像やカテゴリーなどが表示されず、タイトルと日付けのみ表示されている 2.RSS画像にURLがついておらず画像のみ表示されている 3.RSSの画像がない場合ダミー画像を表示させたいが書き方が調べてもわからない <?php $dbh = connect_db(); $categories = []; foreach (get_categories() as $category) { $categories[$category->cat_ID] = $category; } function set_other_data($post) { // アイキャッチIDを取得 $post_thumbnail_id = get_post_thumbnail_id($post); // アイキャッチ画像の確認 if ($post_thumbnail_id) { // 存在する $image_src = wp_get_attachment_image_src($post_thumbnail_id); // サムネイルの画像URLを設定 $post->thumbnail = $image_src[0]; } else { // 存在しない $post->thumbnail = 'noimage.jpg'; } // カテゴリーIDを取得 $post->categories = wp_get_post_categories($post->ID); // コメントテキスト if (0 == $post->comment_count) { // コメントなし $post->comments = __('No Comments'); } else { // コメントあり $post->comments = $post->comment_count.'件のコメント'; } // コメントリンク $post->comments_link = get_comments_link($post->ID); } delete_old_rss($dbh);//接続オブジェクトを渡す //RSS保存 $dbh = connect_db();//① $stmt = $dbh->prepare('insert into rss_feed (title, link, date, img) values (?, ?, ?, ?) on duplicate key update title=?, link=?, date=?, img=?');//② $url1 = get_rss_site_url(); foreach ($url1 as $url) { if (($rss = @simplexml_load_file($url)) === false) { continue; } foreach ($rss->item as $item) { $dc = $item->children('dc', true); $date = date('Y-m-d H:i:s', strtotime($dc->date)); if ($date < $delete_date) { continue; } $title = $item->title; $link = $item->link; $content = $item->children('content', true); $result = preg_match('/<img[^>]*src=\"([^"]+)\"[^>]*>/i', $content->encoded, $matches); if (1 == $result) { $img = $matches[1]; } else { $img = ''; } $stmt->execute([$title, $link, $date, $img, $title, $link, $date, $img]); } } if (ctype_digit($_REQUEST['page'])) { $current_page = (int) $_REQUEST['page']; } else { $current_page = 1; } if ($current_page > $wp_query->max_num_pages) { $current_page = $wp_query->max_num_pages; } $block_per_page = 2; $rss_per_block = 18; $posts_per_block = $wp_query->post_count / $block_per_page; //RSS読み込み $rss_per_page = $block_per_page * $rss_per_block; $rss_offset = ($current_page - 1) * $rss_per_page; $sql = 'SELECT * FROM rss_feed ORDER BY date DESC LIMIT ?,?'; $stmt = $dbh->prepare($sql); $stmt->bindParam(1, $rss_offset, PDO::PARAM_INT); $stmt->bindParam(2, $rss_per_page, PDO::PARAM_INT); $stmt->execute(); $rss_items = $stmt->fetchAll(PDO::FETCH_OBJ); $posts_per_page = $block_per_page * $posts_per_block; $posts_offset = ($current_page - 1) * $posts_per_page; $args = [ 'posts_per_page' => $posts_per_page, 'offset' => $posts_offset, ]; $post_items = get_posts($args); //表示 for ($i = 0; $i < $block_per_page; ++$i) { echo '<h2>ブロック</h2>'; echo '<h3>RSS</h3>'; for ($j = 0; $j < $rss_per_block; ++$j) { $item_index = $i * $rss_per_block + $j; if ($item_index >= count($rss_items)) { break; } $item = $rss_items[$item_index]; echo '<ul>'; echo "<li class=\"sitelink\"><a href=\"{$item->link}\">{$item->title}</a></li>"; echo "<li class=\"sitelink\"><a href=\"{$item->link}\">site</a></li>"; echo "<li class=\"sitedate\">{$item->date}</li>"; if (!empty($item->img)) { echo "<li><img src=\"{$item->img}\" width=\"100\"></li>"; } echo '</ul>'; } echo '<h3>投稿</h3>'; for ($j = 0; $j < $posts_per_block; ++$j) { $item_index = $i * $posts_per_block + $j; if ($item_index >= count($post_items)) { break; } $item = $post_items[$item_index]; echo '<ul>';   echo "<li><a href=\"{$item->guid}\">{$item->post_title}</a></li>"; echo "<li>{$item->post_date}</li>"; echo '</ul>'; } }

    • ベストアンサー
    • PHP