WordPressの更新トラブルでWarning: Invalid argument supplied for foreach()…のエラーが

つい最近の話ですが、WordPressで深刻な脆弱性?のアラートがでてましたよね。

早急に「WordPress 4.7.2」へ更新を – 攻撃容易、改ざん被害も

記事:世界6万6000以上のサイトが改ざん被害、WordPressの脆弱性を悪用した攻撃を国内でも観測
INTERNET Watch ニュース 岩崎 宰守:2017年2月9日 17:20

注意:WordPress の脆弱性対策について
IPA 情報処理推進機構 最終更新日:2017年2月7日

詳しくは上記リンク先を参照していただくとして、ほんとに久しぶりにWordPress界隈での危機だったのですが、
何せしばらくWPから離れていたので、アップデートすら4.1?くらいで放置されておりました…。
(それはそれで恐ろしいことでしたが)
近頃のバージョンでは最近のバージョンを通知してくれたり、自動更新してくれたりするのですけど、
(勝手にアップデートされると、function.phpとかでの不具合等あったりするのでは?と不安ですので)
早速、手動アップデートをかけましたが…

画面がフリーズしてしまい、どうやらアップデートできず。
たぶん、他での集中からかな?とおもい、ほとぼりが冷めてからやりましょ、とおもい、
しばらく経ってから管理画面へログインしようとしますが、
なにやらphpのエラーが…。

Warning: Invalid argument supplied for foreach()…

ありゃま、これはどういうわけか?
上記の警告文での検索では良記事にヒットしませんでしたが、
plugins/head-cleaner/head-cleaner.php on line 2895
でググってみると、良記事が。
これと同じ事象だったので、すぐさまFTPでDLしてきて問題のphpをテキストエディターで改修。
でも、このプラグインのバージョンが古すぎる?為のエラーかもしれないので、使用しないようにした方が良いかしらん。
なぜこのプラグインをDLしたのかさえ、今となっては思い出せません。

というわけで、phpの書き換えで正しくログインできて、アップデートも無事できました。

Syntax Highlighter for WordPress (ソース整形表示)の使い方

phpのソースコードは、phpファイルをエディタで開き、テキストをコピー。
———(テキストはこんな感じ)———-
/**
* Front to the WordPress application. This file doesn’t do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define(‘WP_USE_THEMES’, true);

/** Loads the WordPress Environment and Template */
———(テキストはこんな感じ、以上)———-

それをこのように[php]コード[/php]で挟む。

/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */

以上、簡単ですね。

【参考サイト】
この本文で、[とかがphpで意味をもつキャラクター(文字)であるので、そのまま表示させると、機能してしまいます。
それを防いで、しかも文字として表示させるためのテクニックがこちら。
http://oxynotes.com/?p=879
HTMLやPHPのタグをWordPressで表示する方法

と、ここで問題が発生します。

「SyntaxHighlighter」は

コード

で囲むことで色付けして表示する書式になっていると説明しました。
つまり「SyntaxHighlighter」をインストールした状態では「[ ]」という文字が特殊な意味を持ちます。文章で「


」と入力するにはこの文字をエンティティ化する必要があります。

そのために使うのが「[」を「[」に、「]」を「]」へと、それぞれ置き換える方法です。
「SyntaxHighlighterの解説がしたいけど、書式が上手く書けない」という方は上記のように書いてみてください。

“<"を"&lt;"に。">“を”&gt;”に。

備忘録である。
WordPressで投稿するときに、phpタグを紹介する必要があった場合、
そのままphpをコピペしたら、記述どおりに”機能”してしまう。当たり前だが。
実は、最近そういう必要が生じて、やっちまった
でも、”平文”で表示したいけど、どうやってやったっけ?と思いだしてはみたものの、やはりググってみた方が早いだろ、とおもって調べてみましたが、
なかなか検索結果に望んでいる回答がヒットしませんでした。

そこで、実際にWpで書かれたブログでphpの解説をしている人がいたら、そのソースコードを見てみれば早いかな?とおもって調べてみました。
すると、phpタグとして記述するときのお約束である、
“<"を"&lt;"に。">“を”&gt;”に。

書き換えることで、出力時には、”<" , ">” になっているのが分かりました。

えっと、これ確かphpの講座で習ったぞ…使わないと忘れちゃうもんですねw

で、新たに生じた問題、「記事中に&lt;と&gt;をそのまま表示するには?」
については、こちらをご覧ください。
これはすぐにググったらでましたww

答え:&のあとに、amp を付記すればよい。

ちなみに、”&”であるが、アンパサンドという呼び名で、元々はラテン語の”et”というのが合体した一文字であり、意味は「…と…」という接続語である。
”<”は、less than でlt。”>”は、greater than でgt。なんだってさwww

Wp Tips カテゴリーIDで括ったタイトル一覧を固定ページでまとめて表示させる方法

最初にググって調べたときに、結構苦労して作成した覚えがあるのだが、
いっぺん作ると修正することがほとんどないのでやり方を忘れてしまったけれども、
ふと見やすさをあれこれ考えて再編集してみようと思ったら、
「あれ?どうやってこさえるんだっけ??」と悩んだので、備忘録として記しておく。

タイトルがアレなんですけれども、言いたい(実現したい)ことはなんとなくお分かりいただけるとおもうので、以下、順に従って説明しておきます。

  1. WordPressの管理画面-> 固定ページ -> “タイトル一覧”があるので、“編集”をクリック(新規作成でも基本同じ)。
  2. wptips_cat001

  3. “固定ページを編集”で、タグが仕込まれているので(新規作成の場合は、基本タグをコピペしておいてから)、

    <ul>
    <?php $posts = get_posts(‘numberposts=10&cat=17’); global $post;?>
    <?php foreach($posts as $post): ?>
    <li><?php the_time(‘m月d日’); ?>・・・<a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>

    ※なお、このタグをWordPressでそのまま投稿(タグとして機能させずに平文として表示)させるためには、”<"を"&lt;"に。">“を”&gt;”に。とすればよい。これもTipsなので、別記しておく。『 “<”を“&lt;”に。“>”を“&gt;”に。

  4.     

  5. これの、“ ‘numberposts=10&cat=17’ ”のところのナンバーを改変すればよい。
  6. wptips_cat002

  7. 今、cat=17となっている“17”という数字は、何なのか?というと、これは“投稿” -> “カテゴリー”のところで、予め設定しておいたときのIDナンバーである。
  8. このカテゴリーIDはいったいどうやって知るのか?というと、“カテゴリーの編集”の画面を開いたときのブラウザのアドレスバーに表示されている“../edit-tags.php?action=edit&taxonomy=category&tag_ID=19&post_type=post”がそのカテゴリーのIDナンバーであるので、
  9. wptips_cat003

    wptips_cat004

  10. この“tag_ID=19”の“19”を先ほどの“固定ページを編集”のときの“cat= ”に書き換えればOK。

以上、やってみれば案外簡単なのだが、意外と思い出しづらいw

WordPressの投稿後、”Internal Server Error”がでてしまうのは?

それでここ数日、投稿をアップすると、

“Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@interq.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.”

というメッセージがでてきます。いわゆる500エラーってやつです。

で、特にブログとしてはアップされているので、はて?という感じがいたしますが、
エラーログがサーバーに残っているのかどうか、これから調査します。

WP to Twitter エラー再び…

実は、今年の1月14日に入ってから、WordPressからの投稿がTwitterへ同期しなくなりました。

以前、ここでも紹介しましたが、

また同じ現象でしょうか?対処方法は、ココなんです。
“解決!WP to Twitter連携エラーはちょっとしたことだったo(TヘTo) クゥ”

(おかげさまで、“wp to twitter エラー”でググると、上位に表示され取ります。つか、こんなワードはレアでしょ)
で、安易にできるでしょ、とおもったらギッチョンチョン!
なんと、その欄が管理画面から消えてもうてます!!

さて、どうしましょ?

今、対策を考え中です。

(追記)途方にくれておりましたところ、いつもの『今村だけがよくわかるブログ – imamura.biz』でおなじみの今村さんのブログにて、こんな記事が。
WordPress3.8で2014/1/14ごろからツイートの埋め込みができなくなった原因は、Twitter APIの仕様変更によるものでした

2014/1/14以降、Twitter APIの仕様変更でHTTPSでの通信が必須になりました。

ということなので、関係あるかどうかわかりませんが、果報は寝て待てということで、待ちたいとおもいます。

(追記2)今しがた、このポストしたものがツイッターに同期されていました。
そして、Wp管理画面には、

“Previous Tweets:

From blog: WP to Twitter エラー再び… http://www.tsunagarist.net/?p=842 Retweet this
Failed Tweets:

No failed tweets on this post.”

とありました。

あー、なんでだろ~?ww

Wpのヘッダーイメージを追加したいとき(ver. Twentyeleven)

WordPressにおいて、わたくしはTwentyelevenのテーマを使っているのですが、
そろそろ、ヘッダーで出てくるイメージたちに飽きてきました。
で、自分で変えてみようかと思いましたので、備忘録的に記しておきます。
まず、ヘッダーイメージ画像の格納場所は、
wp-content>themes>twentyeleven>images>headers

になる。そこには、大小2つのJPEG画像(サムネイルと表示画像)
1000 x 288 px
230 x 66 px
の2つが必要。

WP to Twitter の設定で「OAuth 認証に失敗しました。…」と出た時の対処法

実は、WordPressのバージョンアップ?のタイミングなのか、それともWP to Twitterの更新のタイミングのときなのか?
それとも、どういうタイミングなのか定かではないのだけれど、
WordPressで投稿した記事を同期してあるTwitterアカウントへと自動的にポストしてくれるWpプラグイン”Wp to Twitter“が、ときどき同期に失敗している。

一応、「Wp to Twitter エラー」でググってみると、
[WP]WP to TwitterでTwitterに投稿できなかった時やったこと』を参考に、
TwitterのDeveloperページで、API Keyのリセットをやってみて、プラグイン側の”Twitterとの連携の解除”をやり、Twitterの設定の「アプリ連携」の許可を取り消す。までの一連のリセットを行ってから、再度プラグインで、Twitterアプリケーション登録ページより、再設定してみた。

しかし、このようなエラーメッセージが…。
tips_20130910_1

いつもと変わらない…。
こうなったら、もうやけくそで、
「OAuth 認証に失敗しました。サーバーの時刻が Twitter サーバーと大幅にずれています。」というセンテンスそのまんまをググってみました…すると、
WP to Twitter の導入』によると、
『うちの環境では、ここで「OAuth 認証に失敗しました。サーバーの時刻が Twitter サーバーと大幅にずれています。ホスティングサービスに連絡してください。」、「Twitter’s time: There was an error querying Twitter’s servers」などとエラーが発生した。原因は WordPress を動かしているサーバと Twitter サーバの通信の問題 (https で通信できない)。WP to Twitter の詳細設定で「Switch to http connection. (Default is https)」を有効にすると、とりあえず回避できる (あんまり奨励されない気がするけど)。』とあった。

うちとまったくおんなじだ…。

で、この部分にチェックを入れてみると、
tips_20130910_2

エラーメッセージは解消されました…。

なので、このポストがTwitter@tsunagaristで正しく同期されてると、成功です。

【控えめに】たぶん成功しているでしょう。FB投稿をブログへ埋め込むテスト(3)

ヘルプセンターのリンクをクリックすると、
https://developers.facebook.com/docs/plugins/embedded-posts/
にて、Embede postのGet Codeボタンがあったので、ポチると、正しいスクリプトがゲットできた。
plugincode

見比べてみると、やはりいくつか異なる点があったので、修正を加えてみた。

修正点:
1)気になっていたen_USのところ、ja_JPに変えた(英語コードではなく、日本語コードの方がいいのか?とおもい)
2)「all.js#xfbml=l”;」→「all.js#xfbml=1″;」に。”l”ではなくて、”1”だった…。

これでOKだろう。