WordPressのウィジェットが使いづらい!従来のウィジェットに戻す方法

WordPressがまた使いづらくなりましたね。

WordPressのバージョン5.8になったあたりから、外観のウィジェットがものすごく使いづらさアップ。
見づらいし、設定しづらいしでなんでこうしたのって感じです。テーマによってはデザインが変わってしまったりするので困ってる方もいるのではないでしょうか。

プラグイン導入で解決できたのでメモ。

使いづらい点

まずは、使いづらいと思った点。

1. 単純に見づらい(個人的な感想)
2. ブロックの概念がわかりづらい
3. 柔軟性が増してるようでめんどくさい

カテゴリーのリンクを表示するのにも、タイトルとカテゴリーリンクを別々に設定しなきゃいけなかったりします。
柔軟性アップのようにも感じますが、1つにまとめるならグループ化したり、しなかったら削除がめんどくさかったりとあまりメリットを感じられませんでした。

対応方法

対応方法として「Classic Widgets」というプラグインが良かったです。
ウィジェット編集ページがバージョンアップする前の旧バージョンになります!

ドラッグ&ドロップする使い方もしてたので、旧バージョンの方が好みです。

「Classic Widgets」のプラグインは、インストールして有効化すればOK!

Classicつながりで記事投稿を旧バージョンに戻す方法はこちら
WordPressで「>」などが勝手にエスケープされる問題を解決する方法

良きWordpressライフを!

WordPressで「>」などが勝手にエスケープされる問題を解決する方法

WordPressのバージョン5になったあたりから、投稿のエディタがものすごく使いづらくなりました。
ほんと、余計なお世話的な機能満載で記事が書きづらくてしょうがないです。特にテキストエディタで投稿してる人は書きづらいと感じてる人が多いのではと思います。

プラグイン導入で解決できたのでメモ。

使いづらい点

まずは、使いづらいと思った点。

  • 1. <や>、&などが勝手にエスケープされる
  • 2. 自動整形機能

1については、ソースコードとかを載せる人にはやっかいな問題。
「>」が「&gt;」に、「&」が「&amp;」とかに勝手に変換されてしまう現象です。

エディタエリアからフォーカス外した時点で、変換されてしまいますし、しまいには編集ページを開くたびに「&」が「&amp;」に変換され、どんどん&amp;が増えていく始末。

2については、エディタエリアからフォーカスが外れた際に自動でインデントやスペースが整形される現象。
整形されるだけならまだいいのですが、整形の度に表示部分がずれてカーソル見失ったりするので面倒。

特に、htmlコードを入力途中でフォーカス外れたときの補完がやっかいです。
勝手に途中の文章を挟んだり、おかしくなります。

対応方法

上記2つの対応方法として「Classic Editor」というプラグインが良かったです。
投稿編集ページがバージョンアップする前の旧バージョンになりますが、勝手にエスケープ問題も自動整形も解決します!

あと、新バージョンだとパーマリンクの設定に気づきにくく忘れがちなので、旧バージョンの方が好みです。

「Classic Editor」のプラグインはインストールして有効化すればOK!

Classicつながりでウィジェット編集を旧バージョンに戻す方法はこちら
WordPressのウィジェットが使いづらい!従来のウィジェットに戻す方法

良きWordpressライフを!

Phalconのバージョン確認方法

PHPのフレームワーク「Phalcon」のバージョン確認方法をメモ。

サーバーで以下のコマンド実行で確認できます。

php -r "echo Phalcon\Version::get();"

Phalcon5は以下のコマンドで確認できます。

php -r "echo (new Phalcon\Support\Version())->get();"

※Phalcon5のVersion Componentのマニュアル
https://docs.phalcon.io/5.0/ja-jp/support-version

【Phalcon】Validator\Fileのエラー strtr(): The second argument is not an array

PHPのフレームワーク「Phalcon」で画像のバリデーションをしようとしたところエラーが発生したのでメモ。

エラーメッセージ
FastCGI sent in stderr: "PHP message: PHP Warning: strtr(): The second argument is not an array in {filepath}

環境

  • PHP 7.1.33
  • Phalcon 3.2.2

原因

Phalconのバグのようです。
2017年9月頃に修正が終わっているようなので、それ以降の3.2.x系のphalconだと大丈夫みたいです。
https://github.com/phalcon/cphalcon/issues/12947

今回は2017年9月以前のPhalcon3.2.2を使用していたため、エラーが発生。
コードは以下のようにしていました。

Formクラス

・・・
use Phalcon\Forms\Form;
use Phalcon\Forms\Element\File;
use Phalcon\Validation\Validator\File as FileValidator;

class xxxx extends Form
{
	$imageFile = new File('image_file');
	$imageFile->setLabel('画像');
	$imageFile->addValidators(array(
		new FileValidator(array(
			'allowEmpty' => true,
			'maxSize' => '2M',
			'messageSize' => ':field exceeds the max filesize (:max)',
			'allowedTypes' => array('image/jpeg', 'image/png'),
			'messageType' => 'Allowed file types are :types',
			'maxResolution' => '800x600',
			'messageMaxResolution' => 'Max resolution of :field is :max'
		))
	));
	$this->add($imageFile);
}

allowEmpty=trueで空を許可したので、画像を入力しなかった場合はエラーになりません。
画像を入力したときのみエラーになります。

allowEmpty=falseの場合は、画像未入力でもエラーになります。

対応策

Phalcon\Validation\Validator\File は使えないので、カスタムバリデーション等で対応。

いったん、バージョンアップするまでこんな感じでカスタムバリデーションを作成して暫定対応しました。

複数画像対応とか制約とか足りない部分もありますが、ベースとしてはこんな感じ。

カスタムバリデーション

namespace App\xxx\Validation\Validator;
 
use Phalcon\Validation;
use Phalcon\Validation\Message;
use Phalcon\Validation\Validator;
 
/**
 * Fileのバリデーション
 *
 * Phalcon\Validation\Validator\Fileがバグでうまく動作しないのでカスタムで作成(バグ:phalcon3.2.xの最新で改善するよう)
 */
class File extends Validator
{
    /**
     * バリデーションの実行
     * 
     *     use App\xxx\Validation\Validator\File as FileValidator;
     * 
     *     new FileValidator(
     *         [
     *             "maxSize"              => 3072, // キロバイトで指定
     *             "messageSize"          => "field exceeds the max filesize ",
     *             "allowedTypes"         => [
     *                 "image/jpeg",
     *                 "image/png",
     *             ],
     *             "messageType"          => "Allowed file types are types",
     *         ]
     *     )
     *
     * @param Validation $validator
     * @param string     $attribute
     * @return boolean
     */
    public function validate(Validation $validator, $attribute)
    {
        $request = $validator->getDI()->get('request');
        if (!$request->hasFiles(true)) return true;
 
        $file = $this->getTargetFile($attribute, $request->getUploadedFiles(true));
        if (!$file) return true;
        
        $maxSize = $this->getOption('maxSize');
        if (!is_null($maxSize)) {
            if ($file->getSize() > $maxSize * 1024) {
                $message = new Message($this->getOption('messageSize'), $attribute, 'maxSizeFile');
                $validator->appendMessage($message);
                return false;
            }
        }
 
        $allowedTypes = $this->getOption('allowedTypes');
        if (!is_null($allowedTypes)) {
            if (!in_array($file->getRealType(), $allowedTypes)) {
                $message = new Message($this->getOption('messageType'), $attribute, 'allowedTypesFile');
                $validator->appendMessage($message);
                return false;
            }
        }
        return true;
    }
 
    /**
     * リクエストからバリデーション対象ファイルを取得
     *
     * @param array $attribute key
     * @param array $files $request->getUploadedFiles()
     * @return Phalcon\Http\Request\File | null
     */
    public function getTargetFile($attribute, $files)
    {
        foreach ($files as $file) {
            if ($attribute === $file->getKey()) {
                return $file;
            }
        }
        return null;
    }
}

在宅勤務で快適な5000円以内のおすすめゲーミングマウス!使い心地が良い疲れ知らずのマウス選び

在宅勤務で快適な5000円以内のおすすめゲーミングマウス!使い心地が良い疲れ知らずのマウス選び

在宅勤務やリモートワークで家で仕事をする人も多くなってきたのではないでしょうか?

家で仕事をする時間が長くなり、デスク周りを快適にしたい。
そんな方に在宅勤務やリモートワークで使えるゲーミングマウスをご紹介。

在宅ワークだと周りを気にする必要がないので、七色に光るゲーミングマウスも気にせず使えます。気分がアップすること間違いなし!

ゲーミングマウスは性能も価格も高いイメージがあるかもしれませんが、5000円以内のゲーミングマウスも結構あります。
そこまで性能が高くなくても十分使えるゲーミングマウスも多いです。

パソコン周りを快適にし、効率の良く、そして仕事がはかどる環境を作ってみてはいかがでしょうか。

在宅におすすめゲーミングマウス

在宅勤務、リモートワークにおすすめの5,000円以内のゲーミングマウスをご紹介します。

5,000円以内のゲーミングマウスは、40種類以上あるのですが、その中でもおすすめの5つをご紹介していきます。

選ぶ基準としては、

  • 5,000円以内
  • センサーの読み取り性能が高い
  • 重さが90g以内
  • ボタンの数が5つ以上

なぜこの基準にしたかご説明していきます。

続きを読む