troubles

プラグインWP-member で php-ページスラッグ.php を使っていると非ログインでも表示してしまう

2024年12月26日 木曜日

弊社制作案件でプラグイン WP-Members を使って特定の固定ページの会員限定の閲覧制限を設定したのですが、ログインしていなくても閲覧できてしまう不具合が発生。

 

検証を繰り返しているとページの表示カスタマイズに専用のテンプレート(php-ページスラッグ.php)を使うときだけ症状が出ることがわかりました。

 

ググってみると同じ体験者はおられるようで、Tipsがありました。

それならば、php-ページスラッグ.php にログインしているとき、していないときの分岐処理を追記してしまおうということで、これで回避します。

 

» (参考) WP-membersで「page-スラッグ.php」の固定ページに閲覧制限をかける方法

 

弊社の案件では非ログインユーザーはログインページに自動遷移するコードにカスタマイズしました

 

php-ページスラッグ.php に強制コードを追記

<?php
if ( ! defined( 'ABSPATH' ) ) {
    exit; // 直接アクセスを防ぐ
}

// ユーザーがログインしているか確認
if ( ! is_user_logged_in() ) {
    // 非ログイン時にリダイレクト
    wp_redirect( home_url( '/member_login/' ) );
    exit; // 以降のコードを実行させない
}

// 通常のテンプレートコード
get_header(); ?>


<?php get_footer(); ?>

 

でも、弊社の他の案件ではこの処置をしなくても正常に機能しているので必ずそうなるという症状でもないみたいなので…
これはプラグインのほうで改善してほしいものなのですが…

エラーを吐くWordPressのPHPのコードはChatGPTで修正してみよう

2024年1月30日 火曜日

WordPressはテンプレートの開発・カスタマイズでプログラミングが素人でもGoogle検索でネット上にある無数のサンプルコードを見つけて使うことで容易に行えることが魅力で、”WordPress”と書き添えずに検索しても希望のコードが探せるくらいなのですが、PHPがバージョン8になって、ネット上にあるコードがことごとくエラーを吐くようになってしまいました。

PHPがセキュリティを強化して、曖昧な記述が許さなくなったためのようですが、素人カスタマイザーには大問題です。

そこでですが、PHPに詳しいひとにコードの精査や記述を依頼する前にChatGPTを使ってみましょう。

ChatGPT にエラーになっているコードやネットで見つけたサンプルコードを貼り「PHP8でエラーにならないように修正して」というような内容のテキストを追記して送信してみましょう。
絶対とまでは保証しませんが、かなりの確率で適切なコードに修正されて返してきます。
是非試してみてください。

投稿並べ替えプラグインを削除したらカテゴリーがなくなった!

2023年12月12日 火曜日

投稿一覧でドラッグドロップで投稿の順番を並べ替えできるプラグイン Intuitive Custom Post Order の更新が一時、止まっていてセキュリティ的に問題があるとのことだったので削除したら投稿のカテゴリーがなくなって、カテゴリーで分岐して使っているテーマテンプレートやコードが機能しなくなる事態が発生しました。

これはカテゴリーやタクソノミーの並べ替えができるプラグイン Category Order and Taxonomy Terms Order を併用しているときに起こる現象のようで、Category Order and Taxonomy Terms Order をいったん無効にし、再度有効にすればカテゴリーは再び現れました。

Intuitive Custom Post Order に限らず、投稿やページの並べ替えを可能にするプラグインは「削除」すれば同様の現象が確認できました。
「無効」ではカテゴリーは消えるようなことはなく「削除」で起こる現象のようです。

※ Intuitive Custom Post Order は現在更新が継続されています(2023年12月現在)

Advanced Custom FieldsでRepeater Fieldsが使えない?

2023年5月26日 金曜日

Advanced Custom Fields(無料版)がバージョン6になって、かつて別売り買い切りだったオプション
Repeater Fieldsによる、フィールドグループ編集で「繰り返しフィールド」が編集不可能になった。

これについてフォーラムにあった開発者のコメントによると、

Repeater Fieldsオプションはバージョン5系までで、バージョン6では使えなくなったが、通常のアップデートで更新はできないが、5系はセキュリティ・アップデートされたものが今後もプラグインのアーカイブから取得できるとのことだった。
(2023/5/4 に 5.12.6がリリース)

ブロックエディタでの使用が一般化しつつあるWordPress。
カスタムフィールドを使った入出力は再利用ブロックで代用ができるとのことで、新たなプラグインや技術開発が止まりつつある傾向に思えるが、

弊社で制作管理させていただくお客様には入力すべきところに入力すれば表示する、
(クラッシック・エディタで)規則性のあるカスタムフィールドの管理画面はいまもって好評で、
とくに「繰り返しフィールド」は欠かせない機能だ。

5系のアップデートリリースを開発者がいつまでやっていただけるのかはわからないけれど、これからもよろしくお願いしたいところだ。

 

旧バージョンのプラグインの取得先(ページの一番下)
https://wordpress.org/plugins/advanced-custom-fields/advanced/

Changelog も注視しておこう
https://wordpress.org/plugins/advanced-custom-fields/#developers

WordPress高速化を理由にメディアの画像をwebp変換したり、不要な画像を削除するときは慎重に

2022年1月25日 火曜日

WordPressを使ったお客様の案件で、プラグイン EWWW Image Optimizerを使ってjpgをwebpに変換したのが原因なのか、カスタムフィールド(Advanced Custum Fields)のGalleryで挿入した画像が表示されなくなりました。
新規サイトではどうかわかりませんが、運用が長く、投稿も多いサイト、カスタムフィールドを多用しているサイトにあとから導入するのは慎重になさるほうがいいかもしれません。

過去に同じサイトで、プラグイン Media CleanerのようなWordPress の投稿に紐付かなくなった画像を一括削除するプラグインを実行して、カスタムフィールドで挿入された画像を一掃してしまい、真っ青になりました。
通常の画像と投稿の紐付けに関するデータとカスタムフィールドで挿入した画像と投稿の紐付けに関するデータの保管場所が違うからのようです。
こちらも慎重になさったほうがいいかもしれません。

まずは必ずバックアップをしておくこと。
喪失や非表示になった画像は、私どもの場合はプラグイン Enable Media Replace を導入してひとつずつ同じ画像で上書きして修正して復元しましたが、それも多ければ多いほど大変になります。

ページトップへ