画像クリックでの拡大と背景色変更

前置き

特に何も考えずWordPressの投稿ページに画像を貼るだけだとクリックでの画像拡大とかしてくれない。
画像クリックでの拡大方法と、拡大したときの背景色変更方法を備忘録として残す。

設定の有無でどう変わるか

これが特に何も設定してない状態。クリックしても何も起こらない。

でこっちが設定後。

設定方法

画像を選択してリンクから「クリックで拡大」を設定する必要がある。

背景色の設定方法

デフォルトだと画像の描写範囲外は全て白になり大変目に悪い。
また、動的に生成してる関係上、子テーマのCSSに追加するだけでは適用されない。

なので生成部分を書き換える。

自作の子テーマ、大体 wordpress/wp-content/themes/hogehoge-child とかに作ってるはずなのでそのディレクトリのそれぞれのファイルの最終行に以下を追加。

custom.js

document.addEventListener('click', function() {
    setTimeout(() => {
        const scrim = document.querySelector('.wp-lightbox-overlay.zoom.active .scrim');
        if (scrim) {
            scrim.style.setProperty('background-color', '#202020', 'important');
        }
    }, 0);
});

function.php

// ==========================
// custom.js読み込み
// ==========================
add_action('wp_enqueue_scripts', function() {
    wp_enqueue_script(
        'child-custom-js',
        get_stylesheet_directory_uri() . '/custom.js',
        array(),
        false,
        true // フッターで読み込む
    );
});

最後に。

セレクタの .wp-lightbox-overlay.zoom.active .scrim は、今使用しているテーマではこうだっただけで、もしかしたらテーマごとに違うかも。
もし違ったらデベロッパーツールを駆使して自分の環境に合わせて。

Synology Mail Server の設定

前置き

WordPressの通知などメールでのシステムメッセージ送信は自身のWebページのホスト名のメールアドレスからしか送れないらしい?
少なくともプラグインの Contact Form 7 はそういう仕様。

なのでメールサーバを用意して、hoge@bassdig.ddns.net を使えるようにする必要がある。

使用パッケージ

使用するパッケージは Synology Mail Server と Antivirus Essential の2つ。

基本、前提パッケージは自動で入れてくれるのに、これは自動で入れてくれない。
メール送受信でエラーが起きてハマった。

設定方法

基本的な設定は以下。

これらと、「エイリアス」画面で @ より前の部分を設定する。
メアド全て乗ってるので画像は割愛。

LAN外に解放してるわけじゃないので載せても大丈夫だとは思うけど念の為。

SMTPリレー

メールの大量送受信の予定はないけどセキュリティ的にも設定しておいたほうが良さそう?それとも設定必須?
この辺専門範囲外なのであんまりよくわかってない。

gmailのリレーサービスを利用するよう設定した。

ちなみに、2025年03月14日以降 gmail は基本認証(Basic Authentication)を廃止。Synology Mail Server でSMTPリレーの設定を行うには「アプリパスワード」を使用する必要がある。

アプリパスワードは、2段階認証を有効にしたGoogleアカウントで、OAuthに対応していないアプリからの接続を許可するための代替認証方式。Googleが生成する16桁の一時的なパスワードを使って認証する。

この辺見るといいかな。
https://support.google.com/mail/answer/185833?hl=ja

最後に。

Antivirus Essentialがクソ重い。メールのスキャンを切ればいらなくなるのかな…。
LAN外に公開しないし切るのも手かなと思ってる。

他にわからないことあればこことか見る。
https://kb.synology.com/ja-jp/DSM/help/MailServer/mailserver_desc?version=7

WordPressの管理ページへのアクセス制限の話

wordpressでwebページを構築すると、wp-adminやwp-login.phpにアクセスしてwebページの管理を行うことになる。
なのでそのページへのアクセスはローカルIPからのみを許可したい。

ただここで問題になるのがSynology NASのWebStation。

synologyはデフォルトでnginxを使用してユーザーごとにwebページを作成する機能がある。
アクセスされたポートやエイリアスによってどのサービスに転送するかを決定しており、
このサイトの場合はbassdig.ddns.netからのアクセスはすべてwordpressへと転送する設定にしている。

その過程でアクセス元のIPはグローバルIPに書き換えられる。
htaccessで192.168.1.0/24に制限とかするのが一般的だが、それをしてしまうとローカルからのアクセスでも既にグローバルIPに書き換えられているため弾かれてしまうっぽい。

解決するためにChatGPTに聞きながら色々試してみたけどどうもうまくいかない。とりあえずは二要素認証を有効にしといたけど、なんかいい方法ないかなぁ。。