ハードディスクメンテナンス

当サイトには広告が含まれています。

タグ:WordPress



WordPress のインストールディレクトリのルートにある wp-load.php を include シてナニするプログラムを書ゐた。

WordPress

wp_insert_post を使って投稿するのだが、その文中に、iframeタグが入っていると、その部分が見事に消ゑてシマウ!

ハァ?

iframeタグとユ〜ンは、以下のように、YouTubeの動画を埋め込む時などに使うヤツね。



普通に管理画面から投稿すると消されずに投稿できるのだが、プログラム(wp_insert_post)ニョルと消されてしまう。

調べてムィルと、iframeタグは惡意のあるナニを埋め込むコトもできるンで、投稿者の権限が強くナゐと消されるようにナッテルとゐぅハナシだが、そのブログにユーザーは壹人しか居なく、当然ながら「管理者」である。

・購読者
・寄稿者
・投稿者
・編集者
・管理者

管理者ではダメなの?ヴァクァなの?スィヌの?

「特権管理者」とユ〜ンもあるラシ〜ンだが、そのブログにはない、とゆぅか、どの WordPress でも見たコトがナゐ(笑)

で、何ンかシラン(SILANE)けど、以下で挙がってるコードを functions.php に追記すると、iframeタグが「勝手に」消えなくなった。

関連:WordPressでiframeが無効になる現象を解決する方法

ンなもン分かるか!ドァヴォ!!

全画面表示(allowfullscreen)が消える場合



iframeで埋め込んだ動画の全画面再生を許可する場合、タグに「allowfullscreen」を追加するのだが、これも勝手に削除されてしまう。

当然、この状態では「全画面表示はご利用いただけません」となり、全画面で見るコトができナゐ。

全画面表示はご利用いただけません

そこで、先のfunctions.phpへの追記中の配列に以下を追加すると、勝手に消えなくなる。

「'allowfullscreen' => array()」

関連:投稿ページの YouTube 全画面表示されない時

勝手に消されてしまった投稿に付いては、SQLで全て置換シテヤレ!

UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`,'frameborder=\"0\">','frameborder=\"0\" allowfullscreen>') WHERE `post_type` = 'post'

関連:[WordPress] 時刻が9時間ヅレる問題(date_default_timezone_set('UTC')) [wp-load.php]
[PR] au PAY / au WALLET カード 情報

このエントリーをはてなブックマークに追加 mixiチェック



WordPress のインストールディレクトリのルートにある wp-load.php を include シてナニするプログラムを書ゐた。

WordPress

動作は問題なくするンだが、 date("Y-m-d H:i:s") を使ってログを出させると、9時間ヅレてる。

日本時間 20時XX分→11時XX分

ファイルの冒頭で

date_default_timezone_set('Asia/Tokyo')

を使ゐ、タイムゾーンを「日本」に設定シてるにもカカワラヅだ。

で、

wp-load.php

を追ぅと、

wp-config.php が include され、さらに wp-config.php には wp-settings.php が include され、

ソノ wp-settings.php の66行目付近に

// WordPress calculates offsets from UTC.
// phpcs:ignore WordPress.DateTime.RestrictedFunctions.timezone_change_date_default_timezone_set
date_default_timezone_set( 'UTC' ) ;

とあるノォ発見(協定世界時)!

wp-load.php → wp-config.php → wp-settings.php

コレを日本にすれば解決/怪傑するかもシレン/試練が、他にインストールした WordPress の wp-settings.php に於ゐても「UTC」にナッテルし、

WordPressをインストールする際に、コノ箇所を書き換ゑるようなアレはナゐ。

管理画面の設定にはタイムゾーンの選択肢があり、

WordPressのタイムゾーン設定

当然「東京」を選択シてるンだが、先の設定は「UTC」とナッテル。

WordPressが 使う DB のテーブル(wp_posts)には、

post_date / post_date_gmt
post_modified / post_modified_gmt

とユ〜ヨ〜ニ、日本時間とGMTの2ツの時間が記録されてる。

つまり、基準はアクマ/惡魔でも「UTC」で、ソコから算出した現地時間を使ッてる?

なンで、上記の「UTC」を書き換ゑルと、基準が変わッてシまゐ、面倒なコトになりかねナゐ。

せや/瀬谷から、ファイルの冒頭ではなく、wp-load.php を include させた後で

date_default_timezone_set('Asia/Tokyo')

を宣言し、ログを出させると、日本時間と相成ッた。

分かるか/若ルカ!ドァヴォ!!

関連:[WordPress] iframeタグが投稿できない(消える)問題 [wp-load.php]
[PR] au PAY / au WALLET カード 情報

このエントリーをはてなブックマークに追加 mixiチェック



(2022年7月)

lolipop(ロリポップ!)のレンタルサーバーと、その中にあるWordPressに係るハナシ。

WordPress

PHPのバージョン8.1が選択できるようにナッテル。

関連:2022/04/13 『PHP8.1』の提供を開始しました (ロリポップ)

「2022/04/13」とあるが、実際に切替が可能となったのは、7月6日のメンテ後。

関連:2022/06/09 【7月4日追記あり】PHP8.1(モジュール版)提供に伴うメンテナンスについて (ロリポップ)

当初は「2022年6月末頃のメンテナンス」とあったが、遅れた模様。

関連:2022/07/04 【メンテナンス】ロリポップをご利用のお客様へ (ロリポップ)

マルチドメインに対応しており、ドメイン毎に、バージョンを設定できる。

ライトプラン及びスタンダードプランで選択できるのはCGI版とモジュール版であり、以下が選択可能。

・7.4(CGI版)
・8.0(CGI版)
・8.1(CGI版)
・8.1(モジュール版)

7.3(CGI版)と7.4(モジュール版)は廃止された。

モジュール版
・実行プロセス:Apacheのプロセス
・レスポンス:高速
・php.iniによる設定変更:不可
・提供プラン:ライト、スタンダード

CGI版
・実行プロセス:PHPのプロセス
・レスポンス:低速
・php.iniによる設定変更:可
・提供プラン:エコノミー、ライト

変更後、反映に5-10分ほど要するので注意。

で、WordPressの入っているドメインのPHPを7.4(CGI版)→8.1(モジュール版)にすると、サイト(表)は見えるが、管理画面を出そうとすると「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。」となって入れない事案が発生!

このサイトで重大なエラーが発生しました

関連:WordPressのトラブルシューティングについてはこちらをご覧ください。

8.1(CGI版)にしても、同様にアウト!

メールを確認すると、

今回の場合、WordPressがプラグイン XXXXX でエラーを捉えました。

とあり、プラグインがダメな模様。

# メールアドレスは、管理画面の 設定>一般>管理者メールアドレス にある。

一旦7.4(CGI版)に戻し、該当プラグインを無効化、その上で8.1(モジュール版)にすると、無事管理画面に入れた。

このプラグイン、更新されてナゐノョヌェ...

なお、この後に無効化したプラグインを有効化しようとすると、

「重大なエラーを引き起こしたため、プラグインを有効化できませんでした。」

と出て、有効にすることができないので、再び管理画面に入れなくなることはない。

この時に、

Parse error: syntax error, XXX in XXX.php on line XXX

などと表示されるので、プラグインを自力で修正することも可能だが、今回はReplace(置換)関連のプラグインであり、誤動作すると悲惨なので、更新されている類似のプラグインを探すか...面倒杉流!!




[PR] au PAY / au WALLET カード 情報

このエントリーをはてなブックマークに追加 mixiチェック



テーブル名の接頭辞の変更後、wp-config.phpを修正しただけでは、外側のページは見えるが、管理画面(/wp-admin/edit.phpなど)にアクセスすると、「このページにアクセスする権限がありません。」と表示され、ログインも何もできない。

これを解消する方法。

手順1



接頭辞の変更に合わせ、wp-config.phpの

$table_prefix = '(新接頭辞)_' ;

を修正。

手順2



テーブル (接頭辞)_options の option_name にある旧接頭辞を含む部分を(新接頭辞)_user_rolesに修正

同様に、テーブル (接頭辞)_usermetaの meta_key にある

・(接頭辞)_capabilities
・(接頭辞)_user_level

などを修正(ユーザーやプラグインによっては、上記以外にもあるので全部修正)。

主に上記の修正により、ログインはできるようになるだろうが、環境(プラグイン)によっては、WordPressに係るテーブルのどこに接頭辞の設定があるか分からないから、テーブル全てチェックした方がゐ々ヌェ...

そうしないと、ログインはできるが、プラグインの動作に不具合が出るコトになるヅォ!!

で、壹年後/后、再び遭遇する、このヴァクァ詐加減!

関連:[WordPress] 「このページにアクセスする権限がありません」で管理画面に入れない事案 [テーブル接頭辞]

関連:[WordPress] ブロックウィジェットを戻す/無効化する方法 [Classic Widgets]

関連:[WordPress] wwwの有無の統一 [.htaccess]
[PR] au PAY / au WALLET カード 情報

このエントリーをはてなブックマークに追加 mixiチェック



WordPress5.8からかはシラン(SILANE)けど、管理画面で 外観>ウィジェット に飛ぶと、勝手に「ブロックウィジェット」になッてて、ワケの分からン画面に!

ブロックウィジェット_001

# 2022年1月時点での最新は5.9(Josephine,2022年1月25日)

ブログによっては

「ブロックはエラーの影響を受けており、正しく機能しない可能性があります。詳細は開発ツールを確認してください。」

ブロックウィジェット_002

とか/渡嘉何とか/渡嘉出て、エラードァルァクェで悲惨杉流事案!

設定を見回しても戻すソレがナゐンで、ド〜ショ〜かな/佳奈とネットを調べたら、元に戻すプラグインがある模様。

Classic Widgets

Classic WidgetsはWordPressチームがメンテナンスする公式プラグインです。
従来の(「クラシック」)WordPressウィジェット設定画面を戻します。
少なくとも2022年まで、または必要な期間、サポートとメンテナンスが行われます。


関連:Classic Widgets

速やかにコレをインストールし、有効化セョ。

よく見たら、上の「ようこそ画面」の下に書いてあるが、ンなもン読まンワ!ドァヴォ!!

記載にもあるように、Classic WidgetsはWordPress公式のプラグインだが、2022年以降はどうなるかは不明だ...
[PR] au PAY / au WALLET カード 情報

このエントリーをはてなブックマークに追加 mixiチェック

このページのトップヘ