今日もガクリ('A`)
きっと明日もまたガクリ?('A`)
2024 / 04
« «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
archive for the ‘WordPress’ category
WordPress の余計なフィルター/アクションを除去する

久しぶりに本ブログを更新して、ふと UAFirefox Quantum でアクセスし、CTRL + UHTML ソースを見たら、何じゃこりゃ~!? とヘッダー部分に余計な汚らしい JavaScript が入っているではないか!

WordPress の余計な仕業
WordPress の余計な仕業

上記画像の水色で囲っている部分が WordPress が行っている余計な仕業です。で、最も簡単な解決方法は WordPress をインストールしているディレクトリにある wp-includes/default-filters.php を以下の行を見つけコメントアウトしてしまう事です

add_action( 'wp_head',             'rest_output_link_wp_head', 10, 0 );
add_action( 'wp_head',             'wp_resource_hints',               2     );
add_action( 'wp_head',             'print_emoji_detection_script',     7    );
add_action( 'wp_print_styles',     'print_emoji_styles'                     );

しかし、私の場合は WordPress 自体がバージョンアップする度にサーバー上に全上書きしているので、この方法だとバージョンアップの際にこの修正を忘れてしまうというヒューマンエラーを起こしてしまいます

そこで、WordPress 関数 remove_action を使います。変更対象はテンプレートの header.php を以下の様に wp_head 関数をコールされる前に記述しておきます。本ブログのテンプレートは自前で作成した物なので、WordPress バージョンアップ際にはテンプレートは更新対象外なので影響はありません

<?php
/* 2018/08/06 ヘッダーに余計なゴミ JavaScript 等を除去する */
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_resource_hints', 2 );
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

wp_head();
?>

以上の変更を施し、サーバーにアップロードを行い、UA でリロード、ソースを見ると、下記画像の様にすっきりしました

WordPress の余計な仕業を除去してスッキリした HTML ヘッダー
WordPress の余計な仕業を除去してスッキリした HTML ヘッダー
blog, HTML, JavaScript, PHP, WordPressno commentsno trackbacks(986)
WordPress を 3.2 にしました


  <⌒/ヽ-、___     はいはい、
/<_/____/     WordPress を 3.2 にしましたよっと…

ついでに、FireFox も 4 から 5 にしました…

blog, WordPressno commentsno trackbacks(3,495)
WordPress を 3.1.2 にしました


  <⌒/ヽ-、___     はいはい、
/<_/____/     WordPress を 3.1.2 にしましたよっと…

blog, etc, WordPressno commentsno trackbacks(3,527)
WordPress を 3.1 にしました

WordPress を 3.0.5 から 3.1 にしました

blog, WordPressno commentsno trackbacks(2,871)
WordPress を 3.0.5 にしました

WordPress を 3.0.5 にしました。更新頻度はぇぇよ…('A`)

blog, WordPressno commentsno trackbacks(2,693)
WordPress を 3.0.3 4 にしました…

WordPress を 3.0.3 4 にしました。その影響で、テーマファイルで独自で作成していた機能が対応できなくなっていて、不具合が各所で見られる事を現在確認済みです。少しずつ修正を行うので、一部閲覧によって不都合が発生しています。修正されるまでご容赦ください

更新履歴

日付内容
2011/01/03 (月)
  • 更新頻度が早いなぁ…
2010/12/27 (月)
  • ようやく 3.x 対応作業が終わりました
    いざ、やってみると、そんなに時間かかるものではなかったです…
WordPressno commentsno trackbacks(3,591)
WordPress Plugins : Akismet htaccess writer
Akismet htaccess writer 1.0.1
Akismet htaccess writer 1.0.1

ここのブログシステムに WordPress を使用していることはフッター表示で解ると思いますが、スパムブロックには Akismet という同梱プラグインを使用しています。非常に優秀なプラグインで、ほとんどのスパムをブロックしてくれます…が、しかし、ブロックした後の処理がないので件の様なプラグインを作成しました

概要

以下のようなケースの場合に .htaccess の更新を行うプラグインです

  • Akismet がスパムと判定したコメントが書き込まれた
  • ダッシュボードのコメントにて、スパムとしてマークした
  • ダッシュボードのコメントの編集にて、承認ステータスをスパムとして保存した

以上のケースの場合に、承認ステータスがスパムとなっているコメントを書き込んだ IP アドレスのリストをアクセス拒否として、.htaccess を更新します

.htaccess の更新内容は # BEGIN written by WordPress plugin - Akismet htaccess writer# END written by WordPress plugin - Akismet htaccess writer ブロック内で行われます。ブロックが存在しない場合にはファイルの末尾に追加で書き込まれます。以下、サンプルです

  1. # BEGIN written by WordPress plugin - Akismet htaccess writer
  2. Order Allow,Deny
  3. Allow From All
  4. Deny From aaa.bbb.ccc.ddd
  5. Deny From eee.fff.ggg.hhh
  6.   .
  7.   .
  8.   .
  9. Deny From www.xxx.yyy.zzz
  10. # END written by WordPress plugin - Akismet htaccess writer

要求仕様

  • Apache HTTP Server
  • PHP 5.x.x 以上
  • WordPress 2.5.1 以上 1

インストール

  1. ダウンロードした akismet-htaccess-writer.zip アーカイブファイルを解凍します
  2. 解凍した akismet-htaccess-writer ディレクトリをワードプレスの /wp-content/plugins/ へコピーまたは移動します
  3. ダッシュボードの プラグイン ページを表示し、使用する を選択します
  4. ダッシュボードの プラグイン » Akismet htaccess writer にて .htaccess ファイル名を設定します

.htaccess ファイル名が設定されていない、または書き込み可能ではないと .htaccess ファイルは更新されません。また、.htaccess ファイルを書き込み可能にする場合は、HTTPD プロセスが PHP モジュールを実行する際のユーザーに限定して、ファイル属性の設定を行う事を推奨します

ダウンロード

このプラグインに関して、決して Akismet プラグイン作者に連絡は取らないでください


  1. 他のバージョンでも動作するかもしれませんが、テストする余裕がないです…('A`)
internet, PHP, WordPresscomments (20)trackbacks (14)(30,691)
ただいま、改修中…

サイトの管理に時間が取れる様になったので、テンプレートや古い記事などを改修中です。ついでによく閲覧される記事のトップ 10 をサイドバーに表示するプラグイン WP-PostViews 1.30 Readme を導入してみました。取り敢えず、古い記事の中で改修の優先順位はここを参照する事に…

blog, WordPressno commentsno trackbacks(4,224)
meta 要素の name 属性値 keywords の内容を可変に…

meta 要素の name 属性値 keywords の内容を、記事単体表示の場合には可変にしてみました。ある種実験的な試みなので、内容にはまったく影響ありません…('A`)

バグ発覚…直ちに修正…('A`) みっともない PHP エラーを御覧になった方、ごめんなさい…('A`)

blog, WordPressno commentsno trackbacks(4,459)
WordPress : 記事内で PHP コードを実行

WordPress の記事内に PHP コードを記述し、実行するプラグインがないかと検索してみました。Exec-PHPrunPHP の二つのプラグインが見つかりました

取り敢えず、後者の runPHP をインストール、ダッシュボードのプラグイン設定にて使用するように設定し、echo 文だけの PHP コードを記事に書き込み、投稿、閲覧しても何故か実行されません 1 次に前者の Exec-PHP をインストールし、同じようにテスト用の記事を閲覧するとこちらの方のプラグインは実行されました

このプラグインを入れておくだけでは面白くないので The people sending SPAM なるページを作って見ました。このページは WordPress に最初から同梱されているスパムブロッカーのプラグイン Akismet がスパムと判断したコメントの投稿者の IP アドレスを閲覧できるようにしたものです 2


  1. 時間のある時にソースコードを追って原因を調べたいと思います…('A`)
  2. これでわざわざダッシュボードまでアクセスしなくて済みそうです
WordPressno commentsno trackbacks(5,480)
WordPress 2.5.1

帰国してから早々と行ったのが WordPress のバージョンアップ作業でした。前のバージョンは確か 2.3.3 を使用していました。1 以前のバージョンでも私の場合は問題無かったのですが、ダッシュボードの大幅な変更や 500 以上にも及ぶ修正点 2 をダラダラと眺めてバージョンアップする事にしました

WordPress | 日本語 から、バージョン 2.5.1 日本語版をダウンロードし、解凍。私はローカルにもほぼ同じ環境を構築しているので、取り敢えずローカル環境にインストールしてみる事にしました

インストールは単に解凍したディレクトリ/ファイルをコピーするだけなんですが、私の場合は自分で修正したファイルが幾つかあるので、それをコピー、リネームして待避。そして、そのままコピーしてインストールは終了。アップグレードなので /wp-admin/upgrade.php にアクセスしてあっけなくアップグレード作業は終了

一通りの動作テストを済まし、レンタルサーバーの方もバージョンアップしようと、作業を開始する事に。開始の前に Maintenance Mode Plugin にてメインテナンスモードへ移行。そして、ローカルと同じようにインストール作業を行い、最後にアップグレードを作業を行う所でとんでもない事が発覚…

/wp-admin/upgrade.php にアクセスしてもメインテナンスモードに…('A`) ダッシュボードにアクセスしようにも、やはりメインテナンスモード…('A`) どうやら WordPress をインストールした所は全てメインテナンスモードになってしまったようです

しょうがないので phpMyAdmin にてデータベースを書き換えて、通常モードに変更して事なきを得ました。なんで、こんな事態に陥ってしまったかというと、メインテナンスモードプラグインの設定にアクセス許可設定を設定してなかった為に、全てのディレクトリ/ファイルにアクセスしてもメインテナンスモードになってしまったようです。アクセス許可設定を設定し、一通りの動作確認を行って全てのバージョンアップ作業は終了しました 3


  1. うろ覚え…('A`)
  2. Custom Query - WordPress Trac - Trac を参照
  3. フッターのリンク先も変更しないと…
blog, WordPresscomment (1)trackback (1)(5,554)
Customizable Post Listings の修正

当ブログで使用している WordPress のプラグイン Customizable Post Listings 1 の修正点

  1. サーバーとローカル環境での MySQL のバージョンの違いによる不具合の修正

    $sql .= "GROUP BY $tableposts.ID ORDER BY $orderby $order";

    ローカルで構築した MySQL のバージョンだと、GROUP BY 句を指定していると正常に SELECT されないので、以下の様に修正

    $sql .= "ORDER BY $orderby $order";

  2. バグを見つけたので修正

    if ($orderby != 'rand()') $orderby = "$tableposts.post_$orderby";

      ・
      ・
      ・

    if ('modified' == $orderby) $sql .= "AND $tableposts.post_modified_gmt <= '$now' ";

    上記の最初の if 文で $orderby 変数を置き換えてしまっているので、2番目の if 文では真とはなりません。なので、関数の最初で別変数に保持するように修正

    $o = $orderby;

      ・
      ・
      ・

    if ('modified' == $o) $sql .= "AND $tableposts.post_modified_gmt <= '$now' ";

  3. 新規の投稿も更新にリストアップされるのが気に入らないので、recent posts = recent updates にならないように修正(2番の修正が必要)

    if ('modified' == $o) $sql .= "AND $tableposts.post_modified_gmt <= '$now' AND $tableposts.post_date_gmt <> $tableposts.post_modified_gmt ";

    単に投稿日時と更新日時が同じでないレコードを抽出するように条件を加えただけ

  1. recent posts, recent updates の部分で使用しています。配布元サイトのバージョンは 1.1 となっていますが、何故か私が持っているのは 1.5 です…なんでだろう?どこで落としたのか所在がわからなくなりました…('A`)
blog, WordPresscomment (1)no trackbacks(5,616)
WordPress の大きなお世話

WordPress の事 の記事で書いた問題が解決したので、その時行った対策を記事としておきます。結論から言うと、formatting.php を修正する事でほぼ解決。ソースの中を見ると解るように私にとっては余計な事をし過ぎている。修正した点は wptexturize, wpautop の 2つの関数。1 前者は一部の処理をコメントにし、後者は入力パラメーターを処理はせずにそのまま返す様に修正

前述の修正を施した WordPress を暫くの間、ローカル環境の WordPress でテストし、私が使用するもとでは問題ないと判断し、その時にテストしていたプラグイン 2 と一緒にサーバー側にも反映させました。最近の記事 (recent posts) と最近更新 (recent update) された記事のリストがそうです

話は変わって、WordPress はカスタマイズ性が抜群にいいのはいいのですが、如何せん、ドキュメントの不備が酷すぎます。今回の移転で私は初めて WordPress を触りました。所謂、WordPress 初心者です。実際にテンプレートを作製している時に感じたんですが、やりたいこと、実現したいことは解っているのですが、そこから目的の情報に辿り着くまでが時間かかり過ぎました。ひとえに逆引きやチュートリアルといった情報を掲載しているサイトがないからです。これは、公式サイト、日本の WordPress 関連サイトでもそうでした

例を挙げると WordPress でテンプレートを作成するには テンプレートタグ(実体は PHP の関数) というものを使用します。で、公式サイトを閲覧していき、テンプレートタグのマニュアルページなるものを見つけましたが…こんなんじゃ初めて触る人には理解できません。テンプレートタグの要約すら記述していません('A`) 結局テンプレートタグ一つ一つのページを何ができるのかを知る為に見て回らなければなりません。一言要約を記述するだけでこの手間が省けるに…('A`) これらを日本語に翻訳したサイトもあるんですが、情報が古かったり、リソースを置いてる場所が不安定だったりと日本語での情報収集は断念しました

実際にテンプレートについて書いていこうかと思いましたが、ダラダラと長くなるので今回は此処までとします


  1. なんで、こんな余計な事をするのか理解できない。データベースに入っているデータをそのまま無加工で出力して欲しいのに…('A`) しかも、wpautop 関数にはバグがあることが判明('A`)
  2. このプラグインをテストしている最中に問題が発生。サーバーとローカル環境での MySQL のバージョンの違いにより、ローカルでは正しく動作しない事が判明。ローカル側のプラグインのソースを修正する事で対応しましたが…('A`)
blog, WordPressno commentsno trackbacks(3,884)
WordPress の事

標準の table 要素で行うカレンダーは気に入らないので PHP で自作しました。表示フォントはちょっとオサレに Georgia を使っています。Windows, Mac の人もオッケーだと思います

話はチョット変わって、此処のブログシステムの事ですが、フッターに表示している様に WordPress 1 を使用しています。先の記事で、記事の移行はあっさりと終ったと書きましたが、実はあの後に色々とありました…('A`)

  1. 記事の中の div 要素がことごとく p 要素になってる!

    ところが phpMyAdmin 2 にてデータベースの中身を除くと、ちゃんと div 要素としてデータに入っています…WordPress Japan のフォーラムを検索すると、こんな記事が…WordPress Japan :: トピックを表示 - 記事投稿でCSS....【エディタの不具合?仕様?】・・解決 と言う訳で、早速ダッシュボードのユーザー設定にて ビジュアルエディタを使用する のチェックを外して、この問題は解決

  2. ピリオド(.)が 3つ連続してあると全角の 3点リーダー(…) に置き換わってしまう

    データベースの中は置き換わっていないので、表示する際のフィルターの問題でしょう。それにしても、此れは大きなお世話。この問題は解決していませんが、時間ある時に調べてみます

  3. blockquote 要素の中に注意!

    この要素の中に以下の文字が入っていると、表示の際に勝手に別の文字に置き換わってしまいます

    1. シングルクォート(')
      全角っぽいシングルクォートに勝手に置き換わる
    2. ダブルクォート(")
      全角っぽいダブルクォートに勝手に置き換わる
  4. phpMyAdmin のインポートしたデータに改行を入れた所が \r\n という文字列に置き換わっている

    これ、表示の際に復帰改行に変更しているんですが、文字コードで言うならば、0x0d 0x0a を出力している為、UA によっては br 要素と同じように復帰改行してしまう…


上記の 1番以外の問題は恐らく表示する際のフィルター問題でしょう。時間ある時にソースコードを追っかけて調べてみたいと思います。取り敢えず、今は文字参照やキャラクターエンティティを使用して回避しています。改行の問題も文章間に改行を入れないようにして回避しています。いずれも運用で回避できる問題ですが…


  1. WordPress を使用しています。PHP で書かれているので、私にとっては改造が楽です
  2. MySQL をブラウザで管理できるように PHP で書かれた MySQL 管理ツールです。多言語サポートしています。参照 »» phpMyAdmin | MySQL Database Administration Tool | www.phpmyadmin.net
blog, WordPressno commentsno trackbacks(4,901)
contents
most viewed (1183835)
categories
archives
recent posts
recent updates
recent comments
recent trackbacks
912T ASUSTeK ASUSTeK Crosshair IV Extreme blog CSS DARK SOULS DARK SOULS 3 Darksouls3 DarksoulsIII DARK SOULS III DISM Euro Truck Simulator 2 Everquest II firefox foobar2000 game Install internet KB2990941 KB3087873 mod panels ui PCゲーム PHP PX-Q3PE Raid skin SoftBank software SpeedFan Spinel Steam TPS trailer truck TvRock TVTest Windows Windows 7 Win Toolkit WordPress インストール ダークソウルズ 初音ミク 窓辺ななみ
mobile
qrcode:home
profile
曇り札幌市中央区 ‘ 曇り
気温: 10℃ ‘ 湿度: 66%
recommends
Valid XHTML 1.0 Transitional Valid CSS X.X
RSS 2.0 RSS 0.92
RDF/RSS ATOM
get Firefox 2 get Opera
ie