検索
ホームページCMS チュートリアル&#&プレスWordPressのsave_postフックからエラーを表示します

WordPressからのエラーの処理と表示save_postフック:3つのアプローチ

wordpressには、save_postフックに由来するエラーを管理および表示するための単一の標準化された方法がありません。 ただし、いくつかの効果的な戦略が存在し、それぞれに独自の長所と短所があります。この記事では、3つの顕著なアプローチについて説明します。$_SESSIONグローバルの使用、WordPressトランジェントの活用、およびリダイレクトでGETパラメーターを使用します。

Displaying Errors from the save_post Hook in WordPress

複雑さは、WordPressの節約後のリダイレクトに由来しています。

フックが実行された後、ユーザーはリダイレクトされ、実行スレッドを破壊し、グローバル変数へのアクセスを失います。 したがって、エラー情報を保存アクションからリダイレクトページに転送するためにメカニズムが必要です。 save_post

メソッド1:

グローバル$_SESSIONを利用します この簡単なメソッドは、エラーメッセージを

グローバル変数に保存します。 データベースの相互作用を実装して回避するのは簡単です

$_SESSION

実装:
if ( !session_id() ) {
    session_start();
}

if ($error) {
    $_SESSION['my_plugin_errors'] = $error->get_error_message();
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( isset( $_SESSION['my_plugin_errors'] ) ) {
        ?>
        <div class="error">
            <p><?php echo $_SESSION['my_plugin_errors']; ?></p>
        </div>
        <?php
        unset( $_SESSION['my_plugin_errors'] );
    }
}
長所:
    簡単な実装、データベースのオーバーヘッドなし。
  • cons:
  • 標準的なWordPressプラクティスではありません。すべてのセットアップで一貫して有効にされていないセッションハンドリングに依存しています。
  • メソッド2:WordPressトランジェントの採用

トランジェントは、WordPress-Nativeキャッシュメカニズムを提供します。 彼らは、有効期限のある時間でデータを保存したり、利用可能な場合はオブジェクトキャッシュを使用したり、データベースに戻ったりします。

実装:

  • 長所:
WordPressフレンドリー、期限切れのデータの自動クリーンアップ。
if ($error) {
    set_transient("my_save_post_errors_{$post_id}_{$user_id}", $error, 45);
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( $error = get_transient( "my_save_post_errors_{$post_id}_{$user_id}" ) ) {
        ?>
        <div class="error">
            <p><?php echo $error->get_error_message(); ?></p>
        </div>
        <?php
        delete_transient("my_save_post_errors_{$post_id}_{$user_id}");
    }
}
  • cons:データベースインタラクションオブジェクトキャッシュが構成されていない場合。エッジの場合の潜在的なデータ損失
  • メソッド3:リダイレクトURLにgetパラメーターを追加する これは、更新メッセージを表示するためのWordPress自身のアプローチを反映しています。 エラーコードは、リダイレクトURLにクエリパラメーターとして追加されます。
実装:

    長所:
  • 高性能、データベースへのアクセスなし。
  • cons:
には、エラーメッセージの複製が必要です。メンテナンスオーバーヘッドは、多数のエラーコードとともに増加する可能性があります。
if ($error) {
    add_filter('redirect_post_location', function( $location ) use ( $error ) {
        return add_query_arg( 'my-plugin-error', $error->get_error_code(), $location );
    });
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( isset( $_GET['my-plugin-error'] ) ) {
        // Handle error based on error code (switch statement)
        ?>
        <div class="error">
            <p><?php  // Display error message based on $_GET['my-plugin-error'] ?></p>
        </div>
        <?php
    }
}
  • 結論

    最適な方法は、特定のコンテキストに依存します。トランジェントは、WordPressの統合とパフォーマンスの間のバランスをとりますが、GETパラメーターアプローチは最高のパフォーマンスを提供しますが、エラーメッセージをより慎重に管理する必要があります。 $_SESSIONメソッドは、多様なWordPress環境では最も単純ですが、信頼性が低いです。 ニーズとプロジェクトスケールに最適な方法を選択してください。

以上がWordPressのsave_postフックからエラーを表示しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
WordPressでコンテンツを管理するのはどれくらい簡単ですか?WordPressでコンテンツを管理するのはどれくらい簡単ですか?May 09, 2025 am 12:11 AM

wordpressisuser-friendlyduetoitsIntutiveInterfaceandcms、それはfromdesign.itoffersarichtexteditorを使用することを検出するためにcreationAndialibraryfororganization.its flexivitiesisivedyvysencedancevancevencevencedemourthemoursemasensansandyansemas canimpactperomance

WordPressはビジネス設定でどのように使用されていますか?WordPressはビジネス設定でどのように使用されていますか?May 08, 2025 am 12:04 AM

wordpressisutableforbusinesssettings.1)ituportse-commercewithwoocommerce、productmanagementandpaymentprocessing.2)itservesasacmsforcoporateblogs、entancingseoandengagement.3)customizationibultiblewithwithwithsemesandplugins.3)

WordPressに適していないWebサイトは何ですか?WordPressに適していないWebサイトは何ですか?May 07, 2025 am 12:10 AM

wordpressisnotidealforhigh-trafficwebsites、customandcomplexApplications、セキュリティ感覚化、リアルチメダタプロセシング、および高地識別型インターフェース、forhhigh-trafficsites、usenext.jsorcustomsolutions; forplecluctlications、optfordjangaNgoRub

WordPressでブログを作成できますか?WordPressでブログを作成できますか?May 06, 2025 am 12:03 AM

はい、YouCanbuildAblogWithWordPress.1)BetWeenWordPress.comforbeginnersorwordpress.orgformorecontrol.2)SelectAtheMetopersuerizeUourBlog'slook.3)usepluginStoenHanceFunctionality、likeSeoandsocialmedientegreation.4)

WordPressはCMSプラットフォームとしてどのくらい安全ですか?WordPressはCMSプラットフォームとしてどのくらい安全ですか?May 05, 2025 am 12:01 AM

wordpresscanbesecureifmanagedperly.1)keepthewordpresscoreupdatedtopatchvulnerabilities.2)vetandupdatepluginsandとthemes from-reputabless.3)emforcestrongwordsandusetwo-factoruthentication.4)

WordPress CMSでどのようなWebサイトを構築できますか?WordPress CMSでどのようなWebサイトを構築できますか?May 04, 2025 am 12:06 AM

wordpresscanbuildvarioustypesofwebsites:1)personalblogs、easytosetupwithemesandplugins.2)businesswebuilders.3)e-ocommerceforseamlessIntegration.4)コミュニティサイトを使用しているe-ocommerceforseamlessintegration.4)

WordPressをCMSとして使用することの長所と短所は何ですか?WordPressをCMSとして使用することの長所と短所は何ですか?May 03, 2025 am 12:09 AM

wordpressisapowerfulcmswithsifisifistadvantageandChallenges.1)それは、suser-friendlyandcustomizable、yeal forbeginners.2)その増加性をカンロードすることを抱えています

WordPressは、他の人気のあるCMSプラットフォームと比較してどうですか?WordPressは、他の人気のあるCMSプラットフォームと比較してどうですか?May 02, 2025 am 12:18 AM

wordpressexcelsineaseofuseandaptaptability、makeitideal forbeginnersandsmalltomedium-sizedinesses.1)Easeofuse:wordpressisuser-frendly.2)セキュリティ:DrupalleadSwithSecurityFeatures.3)パフォーマンス:GhostoffersexcellencedueTonode.4)scal

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません