WordPressの質問(q10013003):$offsetのコントロール方法は?

このQ&Aのポイント
  • WordPressの質問(q10013003)の続【投稿ページ その3】で、break,continue構文以外で$offsetをコントロールする方法について教えてください。
  • 質問内容を要約すると、$offsetをコントロールするための良い方法を探しているとのことです。
  • 回答としては、データベースから取得したRSSを分けて保存し、そのまま出力する方法をおすすめします。この方法ならループをせずに$offsetをコントロールできます。また、画像1,画像2,画像3のURLについても同じサイトから取得する予定であれば、storage_rss.phpと処理を分ける必要はありません。SQLから操作するかどうかは詳細がわかりませんが、必要に応じて使い分ければ良いでしょう。
回答を見る
  • ベストアンサー

WordPressの質問(q10013003)の続

【投稿ページ その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から操作するのでしょうか?

  • PHP
  • 回答数85
  • ありがとう数106

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

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

ところで、確認したいことがあります。 front-page.phpとpage-secound.phpとpage-third.phpの違いは、画像数が1か2か3でその一覧表示スタイルと、RSSの取得元だけで、ランキング表示その他は、それぞれの画像数の記事になるだけで、デザインは同じですよね。 それと、3パターンあると言われていた、アーカイブとカテゴリーと検索は、その一覧表示のデザインがfront-page.phpとpage-secound.phpとpage-third.phpのように異なるだけで他は同じですよね。

php_learn
質問者

お礼

ファイル自体を識別させて表示方法の切り替えを行うのか、それぞれの機能の箇所で分岐を行うのかどちらかになると思われます。

php_learn
質問者

補足

おっしゃる通りです。それぞれfront-page.php,page-secound.php,page-third.phpと同じデザイン記事表示になります。 画像数が異なるため、間接的にカスタムフィールドで表示ファイルの切り替えを行うように考えています。

その他の回答 (84)

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

【投稿ページ その18】 ・こちらの処理を優先するのはコードが見やすいからでしょうか? そうです。 他にも、関数で取得したものを、さらに別の関数に渡したり、編集したりすることがあるので、一旦変数に入れておいた方があとでどうにでもできそうだからです。 ・<span></span>の間にechoを挟む場合どのように整理すれば適切でしょうか? 今までの話の流れですと、echo "<span class=\"category\">{$cat->category_nicename};(略)echo </span>";となります。 難しく考えないでください。 出力したい順にechoするだけです。 echoを挟むと言う考え方をしなくていいです。 ひとつのタグをひとつのechoで出力する、と言うルールにするとか。 ---- echo '<span>'; echo 出力したいもの; echo '</span>'; ---- 一組の開始タグと終了タグはひとつのechoで出力する、と言うルールにするとか。 ---- echo '<span>出力したいもの</span>'; ---- または、 ---- echo "<span>{$出力したいもの}</span>"; ---- もし出力したいものの中に別のタグがある場合は、ここは分かれて、その中をひとつのechoで出力します。 例としては、下記訂正コードになります。 こちらのコードですが。 ---- /* カテゴリーない場合は非表示 */ global $post; $categories = get_the_category( $post->ID ); echo "<span class=\"category\">{$cat->category_nicename}"; echo the_category(' '); echo '<span class="fa-folder"></span>'; echo '</span>'; ---- global $post; これは不要です。 single.php実行時には$postにデータが入っているのでこの処理をしなくても大丈夫です。 これが必要なのは、スコープがきいていないときです。 スコープと言うのは、その変数がどの範囲で見えているか、というものです。 こちらを読んでみてください。 https://www.php.net/manual/ja/language.variables.scope.php 読んでもわからない場合に聞いてくだされば説明します。 $categories = get_the_category( $post->ID ); これも不要です。 取得したもの$categoriesをどこでも使っていません。 echo "<span class=\"category\">{$cat->category_nicename}"; これも不要、と言うか、使えてないです。 $catはカテゴリーページ実行時に準備されている変数です。 single.phpでは使えません。 以下の出力でいいです。 ---- echo '<span class="category">'; ---- echo the_category(' '); これはecho不要です。 おそらくですが、WordPressのthe_で始まる関数は表示する機能をそなえています。 the_time()もそうでしたね。 と言うわけで、こうなります。 ----訂正コード /* カテゴリーない場合は非表示 */ echo '<span class="category">'; the_category(' '); echo '<span class="fa-folder"></span>'; echo '</span>'; ----

php_learn
質問者

補足

【投稿ページ その18】 ひとつのタグをひとつのechoで出力する、と言うルールにするとか。 ---- echo '<span>'; echo 出力したいもの; echo '</span>'; ---- 一組の開始タグと終了タグはひとつのechoで出力する、と言うルールにするとか。 ---- echo '<span>出力したいもの</span>'; ---- または、 ---- echo "<span>{$出力したいもの}</span>"; ---- A.なるほどecho挟んでシングル・ダブルクォートを使うことは可能なんですね。勉強になりました。ありがとうございます。 global $post; これは不要です。 single.php実行時には$postにデータが入っているのでこの処理をしなくても大丈夫です。 これが必要なのは、スコープがきいていないときです。 A.スコープが効いていないという意味が理解できていないのですが、 グローバルスコープ関数内のどこからでも取得できる=<?php ?>内に$postの中身を指定しているものがあるから必要ないということでしょうか? echo "<span class=\"category\">{$cat->category_nicename}"; これも不要、と言うか、使えてないです。 $catはカテゴリーページ実行時に準備されている変数です。 single.phpでは使えません。 以下の出力でいいです。 ---- echo '<span class="category">'; ---- A.説明ありがとうございます。 echo the_category(' '); これはecho不要です。 おそらくですが、WordPressのthe_で始まる関数は表示する機能をそなえています。 the_time()もそうでしたね。 と言うわけで、こうなります。 ----訂正コード /* カテゴリーない場合は非表示 */ echo '<span class="category">'; the_category(' '); echo '<span class="fa-folder"></span>'; echo '</span>'; ---- A.ありがとうございます。勉強になりました。 https://wandbox.org/permlink/plV3ojqj6p87BcPS

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

【RSS その42】 ・RSSの画像がない記事にダミー画像が正常に反映されません。 front-page.phpは反映されているのですが、他のファイルはパスがあっていないときに表示されるマークが左上に表示されております。 画像パスはすべて同じにしていますので原因が分かりません。テーブルを削除しても同じ状態です。どうすればよいでしょうか? 不思議な現象ですね。 ダミー画像が表示されていることが間違いなのかも知れないので、front-page.phpの画面で、Ctrl+Shift+Rを押して、ブラウザの再読み込みをしてみてください。 あとは、ダミー画像のURLになっていないのかも知れないので、page-secound.phpの画面で、Ctrl+Uを押して、ソースを確認してみてください。

php_learn
質問者

補足

不思議な現象ですね。 ダミー画像が表示されていることが間違いなのかも知れないので、front-page.phpの画面で、Ctrl+Shift+Rを押して、ブラウザの再読み込みをしてみてください。 あとは、ダミー画像のURLになっていないのかも知れないので、page-secound.phpの画面で、Ctrl+Uを押して、ソースを確認してみてください。 A.front-page.phpを確認したところ正常に表示されました。 page-secound.phpを確認してみると、.jpgが読み込まれておらず、固定ページに飛んでいるようです。 原因が分かりません…http://www.gdsgdsgsd.cfbx.jp/%e7%94%bb%e5%83%8f2%e3%82%bf%e3%82%a4%e3%83%88%e3%83%ab1/wp-content/uploads/2022/07/14-150x150-1.jpg ※ソースコード view-source:http://www.gdsgdsgsd.cfbx.jp/%e7%94%bb%e5%83%8f2%e3%82%bf%e3%82%a4%e3%83%88%e3%83%ab1/ ※表示コード wp-content/uploads/2022/07/14-150x150-1.jpg

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

【投稿ページ その17】 ・\や{}を使うときは変数のみということでしょうか? ・''で括る場合は変数以外で、変数は""で括るようにする。変数のクラスにエスケープ\をつけるということでしょうか? そうですね。 だいたいそんな感じの解釈でいいと思います。 少し付け加えると、質問者さまが言われているクラスと言うのは、おそらくclass=""のことだと思いますが、href=""とかsrc=""とか、"はいろんなところで使われているので、クラスに限らず"があるところ、と思ってください。 もうひとつありました。 'でも"でもどちらを使ってもいい場合があります。 例えばこんなものとかです。 ---- echo '</span>'; ---- 変数はありませんし、途中に引用符も含んでいませんので、これでもまったく同じです。 ---- echo "</span>"; ---- 特に使い分ける必要はありません。 ただ、私はエディタのVSCodeの拡張機能でコードを整形させているのですが、その整形ルールでは、変数もないエスケープの必要のないものを"で括っていると'にしてくれます。 私にとってはこれが便利に機能してくれます。 私は基本的に自分でコード入力する時は"を使っています。 'は片手で押しにくいのと、他の言語では"しか使えなかったりするためです。 整形が便利な理由は、"が'に変わった時に、ああ、ここには変数とかなかったからだ、と確認しています。 もし'に変わらないところがあればあったで、ここには変数とかがあるからだ、と確認しています。 プログラムを何年も続けていても入力ミスはあるもので、変数があると思っていたところが'に変わった時に、実行前にそのミスに気付けるのが便利です。 ・変数はないのでそのまま出力というのは間に関数を含む場合も該当するのでしょうか? (;で区切る時に関数が含まれず、<span>から</span>の間には関数がある場合) また下記のコードでecho '</span>';をどのように変化させればよいか分かりませんでした。echo "</span>";となるのでしょうか? 上記の説明とかぶりますが。 日付のところがまだ直ってないのはそのためでしょうか。 以前の回答で指示しましたが、文章との区切れ目がなかったので見逃されてしまったのかも。 文字列内に関数を含みたい場合は一旦文字列を閉じて、.で接続してください。 ---- echo '<span class="article-date">'.the_time('Y/m/d').'</span>'; ---- 変数のように{}の中に書けるといいのですが、どうも書けないようです。 .は文字列を連結するための記号です。 このような場合に使えますし、他にも用途はありますが、今は説明しません。 いただいたコードをそのまま変換しましたが、この場合はthe_time()はふさわしくないようです。 the_time()は表示する機能なので、echoと一緒には使わず単体で使うものです。 ---- echo '<span class="article-date">'; the_time('Y/m/d'); echo '</span>'; ---- もしechoと一緒に使うなら、get_the_time()にしてください。 ---- echo '<span class="article-date">'.get_the_time('Y/m/d').'</span>'; ---- 人それぞれですが、私はあまりこのような書き方もしません。 書くとしたら、質問者さまのもとのコードに近いですが、一旦変数にしてから"の中に書く方法です。 ---- $date = get_the_time('Y/m/d'); echo "<span class=\"article-date\">{$date}</span>"; ---- パフォーマンスで言うとメモリを使い、遅い処理になります。 もうひとつ、HTMLコメントのままのところがあるようです。 ---- <!-- カスタムフィールドの取得 --> ---- これでエラーはなくなって、ひととおり表示されるようになると思います。

php_learn
質問者

補足

【投稿ページ その17】 少し付け加えると、質問者さまが言われているクラスと言うのは、おそらくclass=""のことだと思いますが、href=""とかsrc=""とか、"はいろんなところで使われているので、クラスに限らず"があるところ、と思ってください。 もうひとつありました。 'でも"でもどちらを使ってもいい場合があります。 例えばこんなものとかです。 ---- echo '</span>'; ---- 変数はありませんし、途中に引用符も含んでいませんので、これでもまったく同じです。 ---- echo "</span>"; ---- A.解説ありがとうございます。echo "</span>";のような形は見たことありませんでしたので、勉強になりました。 上記の説明とかぶりますが。 日付のところがまだ直ってないのはそのためでしょうか。 文字列内に関数を含みたい場合は一旦文字列を閉じて、.で接続してください。 ---- echo '<span class="article-date">'.the_time('Y/m/d').'</span>'; ---- 変数のように{}の中に書けるといいのですが、どうも書けないようです。 .は文字列を連結するための記号です。 このような場合に使えますし、他にも用途はありますが、今は説明しません。 いただいたコードをそのまま変換しましたが、この場合はthe_time()はふさわしくないようです。 the_time()は表示する機能なので、echoと一緒には使わず単体で使うものです。 ---- echo '<span class="article-date">'; the_time('Y/m/d'); echo '</span>'; ---- もしechoと一緒に使うなら、get_the_time()にしてください。 ---- echo '<span class="article-date">'.get_the_time('Y/m/d').'</span>'; ---- A.解説ありがとうございます。.の使い方とget_the_timeの使い分けが分からなかったのですが勉強になりました。 人それぞれですが、私はあまりこのような書き方もしません。 書くとしたら、質問者さまのもとのコードに近いですが、一旦変数にしてから"の中に書く方法です。 ---- $date = get_the_time('Y/m/d'); echo "<span class=\"article-date\">{$date}</span>"; ---- パフォーマンスで言うとメモリを使い、遅い処理になります。 もうひとつ、HTMLコメントのままのところがあるようです。 ---- <!-- カスタムフィールドの取得 --> ---- これでエラーはなくなって、ひととおり表示されるようになると思います。 A.パフォーマンスで言うとメモリを使い、遅い処理になります。←こちらの処理を優先するのはコードが見やすいからでしょうか? もう1点お聞きしたいのですが、<span></span>の間にechoを挟む場合どのように整理すれば適切でしょうか? 今までの話の流れですと、echo "<span class=\"category\">{$cat->category_nicename};(略)echo </span>";となります。 /* カテゴリーない場合は非表示 */ global $post; $categories = get_the_category( $post->ID ); echo "<span class=\"category\">{$cat->category_nicename}"; echo the_category(' '); echo '<span class="fa-folder"></span>'; echo '</span>';

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

【投稿ページ その16】 ・echo the_category(' '); とecho comments_number( '0', '1', '%' ); の書き方は問題ないでしょうか? 問題なさそうです。 が、comments_number()の上の行の;が抜けています。 ・echo '<span class=\"single-comments\"><a href=\"{#comments}\">';はエラーにならないのでしょうか? PHPのエラーにはなりませんが、HTMLでエラーになります。 \"はエスケープと呼ばれるもので、"を出力したい場合に使います。 ですが、引用符に'を使うか"を使うかで結果が変わってきます。 echo '"'; これで"がひとつ出力されます。 echo "\""; これでも"がひとつ出力されます。 出力結果は同じです。 引用符に'を使った場合は、その中の文字列をそのまま出力します。 引用符に"を使った場合は、その中の文字列に変数を含めて記述することができます。 変数$aに文字 あ が入っていたとします。 ---- echo '変数の内容は「{$a}」'; ---- の出力結果は、こうなります。 ==== 変数の内容は「{$a}」 ==== ---- echo "変数の内容は「{$a}」"; ---- の出力結果は、こうなります。 ==== 変数の内容は「あ」 ==== 違いをわかっていただけましたか。 変数を使った書き方としては後者が正解です。 「」を"にするとしたらこう書きます。 ---- echo "変数の内容は\"{$a}\""; ---- 結果は。 ==== 変数の内容は"あ" ==== それで質問のこちらですが、 ---- echo '<span class=\"single-comments\"><a href=\"{#comments}\">'; ---- 出力結果はこうなります。 ==== <span class=\"single-comments\"><a href=\"{#comments}\"> ==== 見るからに\は不要ですよね。{}もいらないと思います。 変数はないのでそのまま出力すればいいだけの内容ですのでこうなります。 ---- echo '<span class="single-comments"><a href="#comments">'; ---- 簡単に言うと'で括る場合は、その中の"はそのままで、エスケープ\"にしない、です。 他にもいくつかありそうなのでよく見てください。 それと、今度は変数を使っているところです。 ---- echo '<span class=\"category\">{$cat->category_nicename}'; ---- これだと'で括られた内容がそのまま出力されてしまいますので、"で括ってください。 ---- echo "<span class=\"category\">{$cat->category_nicename}"; ---- もうひとつ、日付のところが直っていません。

php_learn
質問者

補足

【投稿ページ その16】 ・echo the_category(' '); とecho comments_number( '0', '1', '%' ); の書き方は問題ないでしょうか? 問題なさそうです。 が、comments_number()の上の行の;が抜けています。 A.ありがとうございます。修正致しました。 「」を"にするとしたらこう書きます。 ---- echo "変数の内容は\"{$a}\""; ---- 結果は。 ==== 変数の内容は"あ" ==== それで質問のこちらですが、 ---- echo '<span class=\"single-comments\"><a href=\"{#comments}\">'; ---- 出力結果はこうなります。 ==== <span class=\"single-comments\"><a href=\"{#comments}\"> ==== 見るからに\は不要ですよね。{}もいらないと思います。 変数はないのでそのまま出力すればいいだけの内容ですのでこうなります。 ---- echo '<span class="single-comments"><a href="#comments">'; ---- A.なるほど勉強になりました。\や{}を使うときは変数のみということでしょうか? 簡単に言うと'で括る場合は、その中の"はそのままで、エスケープ\"にしない、です。 他にもいくつかありそうなのでよく見てください。 それと、今度は変数を使っているところです。 ---- echo '<span class=\"category\">{$cat->category_nicename}'; ---- これだと'で括られた内容がそのまま出力されてしまいますので、"で括ってください。 ---- echo "<span class=\"category\">{$cat->category_nicename}"; ---- もうひとつ、日付のところが直っていません。 A.解説ありがとうございます。''で括る場合は変数以外で、変数は""で括るようにする。変数のクラスにエスケープ\をつけるということでしょうか? コードを修正してみたのですが間違いはありますでしょうか? https://wandbox.org/permlink/ZpVj8ndS89siUzuH 1点追加でお聞きしたいのですが、変数はないのでそのまま出力というのは間に関数を含む場合も該当するのでしょうか? (;で区切る時に関数が含まれず、<span>から</span>の間には関数がある場合) また下記のコードでecho '</span>';をどのように変化させればよいか分かりませんでした。echo "</span>";となるのでしょうか? /* カテゴリーない場合は非表示 */ global $post; $categories = get_the_category( $post->ID ); echo "<span class=\"category\">{$cat->category_nicename}"; echo the_category(' '); echo '<span class="fa-folder"></span>'; echo '</span>';

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

【cron その10】 ・バージョンの最新が、php72となっているのですがそちらで大丈夫でしょうか? うを! 一覧の名前からするとそうなりますね。 おそらくカラフルボックスでの最新はこれだと思います。 /usr/bin/php 試しにですが、以下のようなファイルを作って、以前result.txtに出力していた方法で、このパスで実行してみてください。 ----ver.php <?php echo phpversion(); ---- カラフルボックスの説明がページによってバージョンが違うのでどれが正しいのやらって感じです。 https://help.colorfulbox.jp/manual/program-spec-list/ https://help.colorfulbox.jp/manual/php-version-change/

php_learn
質問者

補足

【cron その10】 試しにですが、以下のようなファイルを作って、以前result.txtに出力していた方法で、このパスで実行してみてください。 ----ver.php <?php echo phpversion(); ---- カラフルボックスの説明がページによってバージョンが違うのでどれが正しいのやらって感じです。 https://help.colorfulbox.jp/manual/program-spec-list/ https://help.colorfulbox.jp/manual/php-version-change/ A.パスを実行してみると7.0.33と表示されました。上記のサイトを参考にea-php74:PHP7.4をcronで設定してみたところ、7.4.30と表示することができました。 ありがとうございます。 アドバイス頂きたいことがあるのですが、RSSの画像がない記事にダミー画像が正常に反映されません。 front-page.phpは反映されているのですが、他のファイルはパスがあっていないときに表示されるマークが左上に表示されております。 画像パスはすべて同じにしていますので原因が分かりません。テーブルを削除しても同じ状態です。どうすればよいでしょうか? ※該当ファイル https://wandbox.org/permlink/Ulwt1BG67WxLg8lU ※RSSダミー画像 https://imgur.com/bIZPNIa.jpg https://imgur.com/K1ntq6y.jpg(front-page.php) ※該当コード 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]; $title = "<strong><a href=\"{$item->link}\">{$item->title}</a></strong>"; if (empty($item->img)) { $img = 'wp-content/uploads/2022/07/14-150x150-1.jpg'; } else { $img = $item->img; }

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

【投稿ページ その15】 ・広告のscriptタグが問題でエラーになりましたので削除しております。 広告だけをechoにして確認されましたか。 それをせずに全体的にecho化しないでください。 いきなりジャンプせずに、確実な一歩を歩むことをすすめます。 私への負担を減らす意味もあります。 修正ポイントをいくつかあげておきます。 ---- <!-- RSS1 --> ---- 例でも示したように、HTMLのコメントはPHPのコメントにしてください。 /* RSS1 */ もしブラウザでソースを表示した時にこのコメントを見たいのであればechoにしてください。 echo '<!-- RSS1 -->'; ---- /*カテゴリー ない場合は非表示 */ <?php global $post; $categories = get_the_category( $post->ID ); ?> ---- <?phpと?>を削除してください。 他にもいくつかあります。 ----変更前 <span class="fa-clock"></span> ----変更後 echo "<span>{fa-clock}</span>"; ---- 'で括るだけでいいです。 echo '<span class="fa-clock"></span>'; ----変更前 <?php the_time('Y/m/d'); ?> ----変更後 echo '<span class=\"article-date\">{the_time('Y/m/d')}</span>'; ---- 途中に'が登場しているためエラーになります。 文字列内に関数を含みたい場合は一旦文字列を閉じて、.で接続してください。 echo '<span class="article-date">'.the_time('Y/m/d').'</span>'; こうすると"のエスケープも不要になります。 あとは;で終わっていないところがいくつかあります。

php_learn
質問者

お礼

下記コードについてお聞きしたいことがあります。 echo the_category(' '); とecho comments_number( '0', '1', '%' ); の書き方は問題ないでしょうか? 元のコードと比べると違和感があります。 途中に'が登場しているためエラーになります。ということなのですが、echo '<span class=\"single-comments\"><a href=\"{#comments}\">';はエラーにならないのでしょうか? 修正したコードでおかしな部分がありましたらアドバイスお願い致します。 /* カテゴリーない場合は非表示 */ global $post; $categories = get_the_category( $post->ID ); echo '<span class=\"category\">{$cat->category_nicename}'; echo the_category(' '); echo '<span class="fa-folder"></span>'; echo '</span>'; /* コメント数 ない場合は0表示 */ echo '<span class=\"single-comments\"><a href=\"{#comments}\">'; echo '<span class="fa fa-comments-o"></span>'; echo'</span>' echo comments_number( '0', '1', '%' ); echo '</a>'; echo '</span>'; ※元のコード https://wandbox.org/permlink/GVENhEqbxcYEdh1H ※修正コード https://wandbox.org/permlink/KKAkL7B6UpclupPC

php_learn
質問者

補足

【投稿ページ その15】 ・広告のscriptタグが問題でエラーになりましたので削除しております。 広告だけをechoにして確認されましたか。 それをせずに全体的にecho化しないでください。 いきなりジャンプせずに、確実な一歩を歩むことをすすめます。 私への負担を減らす意味もあります。 A.広告を確認してみたところ<script></script>は表示できませんでした。別の方法でも試してみましたがエラーが出ております。 echo '<span class=\"banner-2\"><script src="https://adm.shinobi.jp/s/ecf84559bdac801ad27c367fffbffe2f"></script></span>'; ※表示されているコード echo '<span class=\"banner-1\"><a href="//af.moshimo.com/af/c/click?a_id=3493027&p_id=2312&pc_id=4967&pl_id=38392&guid=ON" rel="nofollow" referrerpolicy="no-referrer-when-downgrade"><img src="//image.moshimo.com/af-img/1762/000000038392.png" width="200" height="200" style="border:none;"></a><img src="//i.moshimo.com/af/i/impression?a_id=3493027&p_id=2312&pc_id=4967&pl_id=38392" width="1" height="1" style="border:none;"></span>'; ※別の方法で試してみたコード echo '<span class=\"banner-2\">'; echo <script src="https://adm.shinobi.jp/s/ecf84559bdac801ad27c367fffbffe2f"></script>; echo '</span>'; ※エラー文 Parse error: syntax error, unexpected '<' in /home/gtyaszhi/public_html/wp-content/themes/sample_theme/single.php on line 75 修正ポイントをいくつかあげておきます。 ---- <!-- RSS1 --> ---- 例でも示したように、HTMLのコメントはPHPのコメントにしてください。 /* RSS1 */ もしブラウザでソースを表示した時にこのコメントを見たいのであればechoにしてください。 echo '<!-- RSS1 -->'; ---- A.失礼いたしました。忘れておりました。 途中に'が登場しているためエラーになります。 文字列内に関数を含みたい場合は一旦文字列を閉じて、.で接続してください。 echo '<span class="article-date">'.the_time('Y/m/d').'</span>'; こうすると"のエスケープも不要になります。 A.ありがとうございます。勉強になりました。見にくいのでお礼の方に質問をまとめております。 ※修正コード https://wandbox.org/permlink/KKAkL7B6UpclupPC

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

【cron その9】 ところで、cronで実行しているphpのパスはこちらですか。 /opt/cpanel/ea-php54/root/usr/bin/php これはPHPのバージョンが5.4を意味しています。 WordPressを実行しているPHPが7.4でしたら合わせておいた方がいいと思います。 WordPressのバージョンが5.9だったと思いますが、推奨のPHPバージョンは7.4以上のようです。 先日の[]とarray()の件でエラーになっていたのは、PHP5.4でstorage_rss.phpを実行していたからではないかと思います。 cronでPHP7.4を実行するとなにか問題がありましたか。

php_learn
質問者

補足

アドバイスありがとうございます。 パスはなかなか通らなかったため古いものにしていましたが、変更いたしました。 バージョンの最新が、php72となっているのですがそちらで大丈夫でしょうか? /opt/cpanel/ea-php72/root/usr/bin/php ※参照バージョン https://help.colorfulbox.jp/manual/pass-list/

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

【cron その8】 ・もしtrisect_rss_feedからの取得を確認したい場合は、次のRSSがくるまで分からないということでしょうか? 現在のRSSはすぐに取得できるのでしょうか? 質問を理解できていませんが。 trisect_rss_feedはRSSの情報をためこんだテーブルなのでいつでも取得できます。 ですが、それがいつRSSサイトから取得したものかというのは現在の構造ではわかりません。 次のRSSがきても、たちまちそれは過去のものとなり、最新だとも言えないものです。 現在のRSSがわかりませんが。 現在たまっているRSSならすぐに取得できます。 現在のRSSサイトの情報とは差異があります。 現在のRSSサイトの情報はサイトにアクセスすれば取得できます。 ・RSSは大手アンテナサイトのクローラーでも最新の記事を巡回して取得して表示させる仕組みになっています。 URLからRSSを取得して記事が反映されていたらそれを取得して表示させます。 そうですね。 RSSサイトは自分が持っていデータから最新の記事を表示させることができます。 またそうしてRSS配信しています。 ですが、RSS配信されているものを、取得してどうこうする、と言うのは別の話しです。 取得したRSSが最新かどうかと言うのは取得した側にはわかりません。 ・データベースを使わない方法もあるとアドバイスを頂いたこともありますが、今回は勉強のためにデータベースとcronを使う方法を選択しました。 そうですね。 それに加えて、過去のRSSも表示できるのがメリットです。 RSSサイトが配信をやめた記事をためておけるからです。 データベースを使わず毎回取得するのが、ほぼ最新と言える情報ですが、RSSサイトからの応答待ちを考えると、データベースから表示した方が圧倒的に早いと思います。 ・分散して負荷を軽減したいのですが、コマンドライン引数のパスとはcronのパスとは違うのでしょうか? /opt/cpanel/ea-php54/root/usr/bin/php /home/gtyaszhi/public_html/storage_rss.php そのパスのことです。 質問者さまが現在どのパスを使っているのかを私は把握していないため省略しました。 そのままその続きにスペースを空けて、1とか2を記述してください。

php_learn
質問者

補足

【cron その8】 質問を理解できていませんが。 trisect_rss_feedはRSSの情報をためこんだテーブルなのでいつでも取得できます。 ですが、それがいつRSSサイトから取得したものかというのは現在の構造ではわかりません。 次のRSSがきても、たちまちそれは過去のものとなり、最新だとも言えないものです。 A.ありがとうございます。表示が上手くいかなかったためいろいろ余計なことを考えてしまいましたが、出力することができました。 現在のRSSがわかりませんが。 現在たまっているRSSならすぐに取得できます。 現在のRSSサイトの情報とは差異があります。 現在のRSSサイトの情報はサイトにアクセスすれば取得できます。 A.すぐに取得可能であれば表示されないのは階層が浅い方のコードミスが原因ですね…ありがとうございます。 そうですね。 それに加えて、過去のRSSも表示できるのがメリットです。 RSSサイトが配信をやめた記事をためておけるからです。 データベースを使わず毎回取得するのが、ほぼ最新と言える情報ですが、RSSサイトからの応答待ちを考えると、 データベースから表示した方が圧倒的に早いと思います。 ・分散して負荷を軽減したいのですが、コマンドライン引数のパスとはcronのパスとは違うのでしょうか? /opt/cpanel/ea-php54/root/usr/bin/php /home/gtyaszhi/public_html/storage_rss.php そのパスのことです。 質問者さまが現在どのパスを使っているのかを私は把握していないため省略しました。 そのままその続きにスペースを空けて、1とか2を記述してください。 A.ありがとうございます。1度データベースを使った負荷の測定をしてみたいと考えていたこともあり、格納して表示する方法に決めました。 確かに直接表示させた方が適切ですね。教えていただいて気が付きましたが過去の記事を保管できるメリットもありますね。

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

【投稿ページ その14】 ・カテゴリーのクリック数をカウントするcategory.phpの仕組みがわからないのですが、ファイルが切り替わった瞬間にカウントされるのか、下記のコードでコンテンツをカウントするのかどちらか理解できていません。 混同されているような質問ですが、カテゴリーページ(category.php)と投稿ページ(single.php)があります。 カテゴリーのカウントアップはここでしています。 ----category.php if (is_category() && !is_user_logged_in() && !isBot()) : //個別記事 かつ ログインしていない かつ 非ボット category_views_week(); //アクセスをカウントする endif; ---- 投稿のカウントアップはここでしています。 ----single.php if (is_single() && !is_user_logged_in() && !isBot()) { // 個別記事 かつ ログインしていない かつ 非ボット set_post_views_week(); // 週間アクセスをカウントする set_post_views_month(); // 月間アクセスをカウントする } ---- カウントアップはそのページに遷移してきた時で、言われている、ファイルが切り替わった瞬間です。 瞬間とは言っても、上記のカウントアップの処理が実行されることによるものです。 以下のコードがあるのはsingle.phpです。 ---- the_title(); the_content(); ---- この処理はタイトルの表示と、本文の表示です。 これはカウントとは無関係です。

php_learn
質問者

補足

カウントアップはそのページに遷移してきた時で、言われている、ファイルが切り替わった瞬間です。 瞬間とは言っても、上記のカウントアップの処理が実行されることによるものです。 以下のコードがあるのはsingle.phpです。 ---- the_title(); the_content(); ---- この処理はタイトルの表示と、本文の表示です。 これはカウントとは無関係です。 A.ありがとうございます。勉強になりました。 先ほども同じように書いたのですが、広告のscriptタグが問題でエラーになりましたので削除しております。 ※該当ファイル https://wandbox.org/permlink/BPCiHKbM2L9jPOvd

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

【投稿ページ その13】 ・echo'<a href="//af.moshimo.com/">'でいいでしょうか? 書き方はそんな感じでいいと思います。 echoの直後にはスペースを入れて、行末には;を付けてください。 私は省略しましたが、URLはまだ続きがありましたし、imgタグもありましたので、お忘れなく。

php_learn
質問者

補足

修正してみたのですが、間違いが複数あると思われます。 アドバイスよろしくお願い致します。 https://wandbox.org/permlink/VUIwJ2xznqCXmJsS

関連するQ&A

  • WordPressの固定ページの要素が反映されない

    WordPressの固定ページのタイトル、サイドバー、アイキャッチ画像などが表示されません。 「FeedWordPress」というプラグインを使ってRSSフィードを読み込んで他人様の投稿を表示させるページを作っています。いわゆるアンテナサイトです。 まず、固定ページを作りました。そしてその固定ページに自動で集めた他人様の投稿を表示させるようにしました。しかし何かが干渉しているのか、固定ページのタイトルが出てきません。イメージとしましては、 ------------------------------ ○○アンテナ ←←←固定ページのタイトルなどが出てきません ・RSSフィード読み込み記事1 ・RSSフィード読み込み記事2 ・RSSフィード読み込み記事3 ・RSSフィード読み込み記事4 ------------------------------ また、同時に固定ページの編集のところでサイドバーを指定したりアイキャッチ画像を入れたりしているのですが、どちら出ません。 変な表現ですが、固定ページの要素全てががFeedWordPressに負けてしまっている状態のようです。ちなみにRSSフィードで集めた投稿は画像やタイトルや本文ともにきれいに表示されています。Googleなどで三日三晩調べても解決に至りませんでした。また管理者ページの[外観]→[カスタマイズ]もとことん隅から隅まで確認しましたが解決できませんでした。 稚拙な表現ですが、どなたかご教授お願い致します。

  • WordPressについての質問です

    wordpressを始めました。 投稿記事のタイトルの下にある日付と投稿者にそれぞれブログ記事へのリンクが貼られますが、 このリンクを解除することは可能でしょうか?

  • WordPressの質問(q10032703)の続

    該当コードからmeta_keyに当てはまる記事を出力したいが、記事が何も表示されない。 function set_template_info() { global $tn; global $tk; global $rss_table_name; global $current_page; $tn = get_template_number(); $tk = get_template_key($tn); $rss_table_name = get_rss_table_name($tn); $current_page = get_current_page(); } function get_template_number() { global $template; $template_number = $_GET['tn']; switch ($template_number) { case '2': break; case '3': break; default: switch (pathinfo($template, PATHINFO_FILENAME)) { case 'page-secound': $template_number = 2; break; case 'page-third': $template_number = 3; break; default: $template_number = 1; } } return $template_number; } function get_template_key($template_number) { if (1 == $template_number) { $template_key = 'single_rss_feed1'; } elseif (2 == $template_number) { $template_key = 'double_rss_feed2'; } elseif (3 == $template_number) { $template_key = 'triple_rss_feed3'; } return $template_key;

    • ベストアンサー
    • PHP
  • wordpressのリンクについて質問があります。

    wordpress初心者です。 wordpressで相互リンクを管理するHPの管理画面を作成したいのですが よくわかりません・・・ いろいろ調べてみたのですが、 wordpressにログイン後管理ページのダッシュボードにて 「リンクからリンク集の作成ができる」と調べていたらわかったのですが、 そもそもログイン後からダッシュボードを見ても「リンク」がありません。 上からダッシュボード、投稿、メディア、固定ページ、コメント、外観、 プラグイン、ユーザー、ツール、設定と順番に並んでいます。 初期設定を2,3回しましたが解決できませんでした・・・ リンク集を作成したいのでダッシュボードの「リンク」を表示する方法を 知っていいる方は教えて頂けませんか? よろしくお願いします。

    • 締切済み
    • PHP
  • FC2 ブログ 記事をカスタマイズしたいです

    FC2ブログ始めました。 テンプレは3カラムを使用してます。 真ん中にコメント記事がでますが、その記事上部にフリーエリアを作り、そこに広告バナーを固定してます。 ページが変わっても、フリーエリアはそのまま一番上です。 で、その広告を囲んだり、詳細を記載したいのですが、ググってもわかりませんでした。 言葉では、分かりづらいと思いますので、画像を添付しました。 画像のように、幾つもの広告バナーを一つ一つ枠で囲み、詳細を下に記載したいと思います。 どこかに無料テンプレートを配布してるサイトとか、説明してるサイトがありましたら教えてください。

  • WordPress3での投稿記事一覧

    WordPress3の勉強を始めました。 インストールして、最初のページで、 「Hello world!」となり、 投稿記事 の一覧になります。 トップページで、 投稿記事 の一覧 を削除する方法がわかりません。 WordPress3の管理画面を見ても、該当する部分がわかりません。 ちなみに、 トップページは、サイドバーのウィジェットを使うだけで、 インストールした時に、投稿記事になっていた部分は、 画像などにしたいと思っております。 投稿記事は、トップページからリンクを張り、 2ページめにしようと思っております。 よろしくお願いします。

  • wordpressの予約投稿の日付とRSSの日付

    wordpress4.3.1を使用しています。 予約投稿をしたのですが、wordressの投稿のRSSでは日付が予約投稿をした日付ではなく、記事を入力した日付で取得されてしまいました。外部サイトへRSSのfeedを読み込んで記事タイトルと日付を表示させる都合上、日付は予約投稿した日でも表示させたいと思います。 (現状は添付画像ご確認よろしくお願いいたします。) どうすればよろしいでしょうか。よろしくお願いいたします。

    • 締切済み
    • CSS
  • 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
  • WordPressについて

    WordPressに関する質問です。 サイトにプロフィールを掲載しようと思い、 プロフィールを固定ページとして投稿しました。 固定ページを投稿する際にパーマリンクが http://・・・・・/プロフィール となっていましたが 公開した固定ページのURLを見てみると http://・・・・・/2%5#36% というような数字の羅列したURLになっていました。 URL設定自体は数字ベースに設定しているので 数字ベースのURLになったと思うのですが、 パーマリンクとURLというのは違うものなのでしょうか。 wordpressを使い始めてまだ間もないので この類の詳しいことまで教えていただけるとうれしいです。 よろしくお願いします。 ※OKWaveより補足:「富士通FMV」についての質問です。

  • ワードプレス(WordPress) RSS magpierss 日付

    ワードプレス(WordPress)のRSSを、他のサイトで取得するため にmagpierssを入れてるのですが、日付がうまく取得(表示) できません・・。教えてください・・。 ◆ワードプレス側のRSSは、固定カテゴリーです。 アドレス?feed=rss2&cat=3 ◆magpierss では、ブログタイトルは取得しないので 記事のタイトルと、日時だけ取得したいと想っています。 前略・・ $count = 1; // ↓ブログタイトル↓ // echo "<h2>$title</h2>\n"; //echo "<dl>\n"; // ↓記事6個まで↓ foreach ($rss->items as $item ) { if($count < 6){ $count++; // 記事のタイトル $title = $item['title']; // 表示する文字数を制限する 10文字 $title = mb_strimwidth($title, 0, 50, "...", "UTF-8"); //$title = mb_convert_encoding($title, "UTF-8", "auto");   記事の要約   $desc = $item['description'];  $desc = $item['summary'];   $desc = mb_convert_encoding($desc, "UTF-8", "auto"); // 記事のURL $url = $item['link']; // 記事の投稿日時 2005/09/20/10:30:00形式 $date = $item['dc']['date']; $time = rtrim("$date","\+09:00"); $time = strTr("$time","T-","//"); // 記事の投稿日時 09/20形式 $date2 = substr($item['dc']['date'],5,5); $time2 = strTr("$date2","T-","//"); // 記事の投稿日時 10:30形式 $time3 = date( 'H:i', strtotime( substr( $item['dc']['date'],11,8 ) ) ); // 出力形式選択 echo " <ul> <li> <a href=\"$url \">$title</a>$time</li> </ul>"; } } // 出力形式選択↑ループ ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう