練炭ブログ

X680x0、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

MySQLを8.0に変更

コメントなし»

WordPress の自動更新が失敗していて、どうやら WordPress 6.5 以降では MySQL 5.5.5 以上を要求するようになった影響のようです。

今までも MySQL のアップデートはしたい気持ちはありましたが、ロリポップのライトプランだとデータベースを1個しか作れないせいで、変更する場合は

  1. データをエクスポート。
  2. データベースを削除。
  3. データベースを MySQL 8.0 で作成。
  4. データをインポート。

としなければならず、作業ミスの危険を考慮して保留していました。

WordPress の更新ができないのは困るなぁ……と思ったら、いつの間にかライトプランのデータベースが50個に変更されていました。
ロリポからのメールは読んでますが、特に関係ないと思って見過ごしていたのかも。

古いデータベースはそのままに、新しいデータベースを MySQL 8.0 で作成して wp-config.php を書き換え。無事アップデートできました。

複数データベースを作れるようになって助かりましたが、50個もいらないからもっと早く増やして欲しかったという気も。

WordPress のサイトヘルスステータスも改善の推奨項目がいくつもありましたが、アップデートして
永続オブジェクトキャッシュを使用してください ページキャッシュは検出されませんでしたが、サーバーのレスポンスは良好です
の2点だけになりました。
キャッシュ関係はデメリットが出がちなので、これは手を付けず現状維持で。

WordPress 3.7.1

コメントなし»

プラグイン整理したりコアファイルの書き換えを撤廃したり。

・Category Order
今まで使っていた My Category order から乗り換え。
むかし別のサーバでも WordPress 使ってた時に、My Category order はデータベースの権限の関係で動作しなくて Category Order にしたような気が。
編集画面のチェックリストも並べ替えが反映されるのでこっちのほうが便利。

・Category Checklist Tree
選択されたカテゴリが編集画面のチェックリストで上に飛ぶバグへの対策として導入。

・Ktai Style
削除。

--
編集画面のカテゴリの表示高さとタグ欄で日本語変換を確定するとタグが確定してしまう不具合の修正は、functions.php を作ってなんとかなった。

<?php
function admin_css_custom() {
?>
<style>div#category-all.tabs-panel{max-height:400px;}</style>
<?php
}
add_action('admin_print_styles', 'admin_css_custom');

function admin_post_edit_key_fix() {
?>
<script>jQuery(function($){
  $(window).load(function(){
    $('input.newtag',$('div.ajaxtag')).off('keyup').on('keypress',function(e){
      if(13===e.which){tagBox.flushTags($(this).closest('.tagsdiv'));return false;}
    });
  });
});</script>
<?php
}
add_action('admin_footer', 'admin_post_edit_key_fix');
?>

WordPress 3.7 から搭載された自動バックグラウンド更新機能はダッシュボードからは無効化できないようで、ちょっと怖いけど様子見で。

WordPress: 複数の記事を一括で非表示にする方法

コメントなし»

えー、というわけで X680x0 カテゴリの投稿を全て非表示にしたわけですが、WordPress の基本機能だけで(プラグインを使わずに)複数の投稿を一括で非表示にする方法の覚書です。

  1. ダッシュボードから投稿一覧を開く。
  2. カテゴリー指定や検索機能で非表示にしたい投稿を絞り込む。
  3. 全ての投稿が1ページに表示されるように(=以下の手順をペース数だけ繰り返さずにすむように)、右上の表示オプションを開いて表示する投稿数を増やして適用する。
  4. 非表示にしたい投稿にチェックを入れる(全てチェックを入れる場合は「タイトル」の左のチェックボックスから)。
  5. リストボックスの「一括操作」を「編集」に変更して適用する。
  6. 一括編集の表示が出てくるので、ステータスを「非公開」にして更新する。
  7. 当ブログのように重いサーバで多数の投稿に適用した場合はものすごく時間がかかるので腹筋をしながら待つ。

こーゆー画面です。
wordpress_edit_posts

WordPress 3.4 編集画面のカテゴリー一覧の高さを広げるパッチ

コメントなし»

wp-admin/css/wp-admin.css

の末尾に

.categorydiv div.tabs-panel{height:auto}

を追加。

WordPress 3.3.2

コメントなし»

ダッシュボードに WordPress 3.3.2 が出たので更新しましょうって表示されたのでそのまま更新してましたが、よく見たら英語版でした。

でも特に問題なく動作してるっぽいですね。

日本語版で調整してる部分がある筈ですが、前のバージョンの日本語版に戻すのが面倒なので、3.3.2 の日本語版が出るまでそのままでいっちゃうー。

WordPress 3.3.1

コメントなし»

wp-admin/css/wp-admin.css
wp-admin/includes/meta-boxes.php
wp-admin/js/post.js
wp-includes/js/quicktags.js
wp-includes/formatting.php

────
テキスト変換機能(680x0 や -- などが勝手に化ける問題)を無効化

wp-includes/ フォルダにある formatting.php の wptexturize() 関数の冒頭に return $text; を追加し、以下のようにします。

function wptexturize($text) {
return $text;

────
記事の編集画面で「カテゴリー」にスクロールバーを出さない

wp-admin/css/ フォルダにある wp-admin.css から、以下の部分を探します。

#linkcategorydiv div.tabs-panel{height:200px;

height:min-height: に変更します。

同じコードがもう一つあるので、そちらも同様に変更します。

────
記事の編集画面の「カテゴリー」でチェック状態で並び替えない

wp-admin/includes/ フォルダにある meta-boxes.php から、以下の部分を探します(post_categories_meta_box 関数の中にあります)。

<?php wp_terms_checklist($post->ID, array( 'taxonomy' => $taxonomy, 'popular_cats' => $popular_ids ) ) ?>

$popular_ids の直後に , 'checked_ontop' => false を追加します。

────
記事の編集画面の「タグ」で日本語変換の確定時に勝手にタグを追加しない

wp-admin/js/ フォルダにある post.js から、以下の部分を探します(co.keyup ではない方)。

.keyup

これを .keypress に変更します。

その少し後ろに以下のコードがあるので削除します。

.keypress(function(d){if(13==d.which){d.preventDefault();return false}})

────
記事の編集画面から使わないクイックタグを削除

wp-include/js/ フォルダにある quicktags.js から、以下の部分を探して削除します。

edButtons[120]=new c.TagButton("more","more","<!--more-->","","t"),edButtons[130]=new c.SpellButton(),

WordPress 3.3

コメントなし»

WordPress 3.3 日本語版がリリースされたのでアップデートしました。変更点の表示機能が盛り込まれて、実際に変更された機能が指し示されて開設されたので分かりやすいです。

で、Yet Another Related Posts Plugin も 3.4 にアップデートしたのですが、正しく関連記事を表示されなくなりました。既にベータ版が出ているのでそのうち正式にバージョンアップすると思われます。うちは面倒なので正式版待ち……。

Twitter をはじめてみた

コメントなし»

といってもまだテスト投稿しかしてませんが。

@rentan_org

WordPress にもプラグインをインストール。Tweetable プラグインがよさそうだったけど、Twitter Tools プラグインならツイートをブログにまとめる機能があるのでこちらを。

簡単に登録できるのかと思ったら、WordPress にインストールしたプラグインを新しいアプリとして Twitter に登録する必要があるんですね。作業自体は簡単といえば簡単ですが、誰かが WordPress に Twitter Tools を導入する度に Twitter アプリの数が増えていくという……。

ツイートをブログにまとめるのは、自分が人のブログを見ててあんまり嬉しくないのでやめるかも。

あとは専用のブラウザを導入するかどうか。ツールでツイートのバックアップが出来るならそっちで行えばいいし。

WordPress のポータブル環境 Instant WordPress

コメントなし»

USBメモリ内にWordPress用のローカル環境を5分で構築、持ち運び可能なフリーのソフトウェア・Instant WordPressが超便利っぽい - かちびと. net

おお、これは便利そう。今度テーマを編集する時に使ってみよう。

ダッシュボードの更新画面から日本語版をインストールするだけで日本語化できそうな感じ。

.htaccess

コメントなし»

WordPress のアップロードディレクトリ (/blog/wp-content/uploads/) が無防備マンだったので、一応外部からの直リンははじくようにしてみました。

最初、/.htaccess で <Directory /blog/wp-content/uploads/>~</Directory> でリファラをチェックして正しくなければ Deny するようにしてみたら、何故か全部のアクセスが拒否されてしまう。

同じ中身を /blog/wp-content/uploads/.htaccess に書いたら問題なく制御できるようになったけど、なんでうまくいかなかったのか不明。

SetEnvIf Referer "^http://rentan.org/" referer_ok
SetEnvIf Referer "^http://rentan.example.jp/" referer_ok
Order Deny,Allow
Deny from all
Allow from env=referer_ok

いまどき無闇にリファラを消すようなセキュリティソフトなんてないだろうから、これで構わんよね。