この記事では、WordPress用のシンプルなAjax連絡(luò)フォームプラグインを構(gòu)築することを示しています。 プラグインの作成、フォームデザイン、AJAX処理、ショートコードの実裝をカバーします。
重要な概念:WordPressプラグイン開(kāi)発は、サイト機(jī)能を拡張するためのプラグインをレバレッジします。これには、データ提出にAJAXを使用する連絡(luò)先フォームの作成が含まれます。 これには、プラグインファイルの作成、フォーム構(gòu)造、AJAXハンドラー、ショートコードが含まれます。
- ajaxハンドラーは非常に重要です。ユーザーの入力を受信し、データを検証し、
- を使用してWordPress管理者に電子メール通知を送信します。 AJAXハンドラーの適切な登録は、AJAXリクエストを処理するために不可欠です。 ショートコードは、フォームの統(tǒng)合を簡(jiǎn)素化します。フォームのHTMLを生成し、その後、ショートコード內(nèi)にカプセル化され、投稿やページに簡(jiǎn)単に挿入するようになります。
-
wp_mail()
プラグインの作成:
WordPressディレクトリ內(nèi)でという名前のフォルダーを作成します。
內(nèi)部、次のプラグインヘッダーを使用して- を作成します
-
ajaxcontactform
wp-content/plugins
WordPress管理パネルのプラグインをアクティブにします。 -
ajaxcontactform.php
<?php /* Plugin Name: Ajax Contact Form Plugin URI: (Your Plugin URI) Description: A simple contact form using AJAX. Author: Abbas Suterwala Version: 1.0 Author URI: (Your Author URI) */ ?>
- 內(nèi)に という名前のサブフォルダーを作成し、ajaxコードに
-
js
次のPHPコードをajaxcontactform
に追加して、定數(shù)、Enqueueスクリプトを定義し、ajax URLをローカライズします。ajaxcontact.js
フォーム作成:
- 次の関數(shù)は、連絡(luò)先フォームのhtml:
- を生成します
ajaxcontactform.php
このフォームは、ページまたは投稿に統(tǒng)合された後に以下に示すように表示されます。
define('ACFSURL', WP_PLUGIN_URL."/".dirname( plugin_basename( __FILE__ ) ) ); define('ACFPATH', WP_PLUGIN_DIR."/".dirname( plugin_basename( __FILE__ ) ) ); function ajaxcontact_enqueuescripts() { wp_enqueue_script('ajaxcontact', ACFSURL.'/js/ajaxcontact.js', array('jquery')); wp_localize_script( 'ajaxcontact', 'ajaxcontactajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); } add_action('wp_enqueue_scripts', 'ajaxcontact_enqueuescripts');
ajaxハンドラー:
この関數(shù)はAJAX要求を処理し、データを検証し、メールを送信します。
function ajaxcontact_show_contact() { ?> <div> <div style="background-color:http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bE6E6FA ;color:blue;"></div> <input type="text" id="ajaxcontactname" placeholder="Name"><br> <input type="email" id="ajaxcontactemail" placeholder="Email"><br> <input type="text" id="ajaxcontactsubject" placeholder="Subject"><br> <textarea id="ajaxcontactcontents" placeholder="Message"></textarea><br> <a href="http://ipnx.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b" onclick="ajaxformsendmail(this.form);" style="cursor: pointer">Send Mail</a> </div> <?php }
エラー処理には、次のようなメッセージが表示されます
ajaxハンドラーの登録:
ajaxハンドラーを登録します:
function ajaxcontact_send_mail() { $results = ''; $error = 0; $name = isset($_POST['acfname']) ? sanitize_text_field($_POST['acfname']) : ''; $email = isset($_POST['acfemail']) ? sanitize_email($_POST['acfemail']) : ''; $subject = isset($_POST['acfsubject']) ? sanitize_text_field($_POST['acfsubject']) : ''; $contents = isset($_POST['acfcontents']) ? wp_kses_post($_POST['acfcontents']) : ''; $admin_email = get_option('admin_email'); if (!is_email($email)) { $results = $email." :email address is not valid."; $error = 1; } elseif (empty($name)) { $results = "Name is invalid."; $error = 1; } elseif (empty($subject)) { $results = "Subject is invalid."; $error = 1; } elseif (empty($contents)) { $results = "Content is invalid."; $error = 1; } if ($error == 0) { $headers = 'From: ' . $email . "\r\n"; if (wp_mail($admin_email, $subject, $contents, $headers)) { $results = "*Thanks for your mail."; } else { $results = "*The mail could not be sent."; } } die($results); }
ajaxリクエスト(ajaxcontact.js)の送信:
ショートコードの作成:
完成したフォームは次のように表示されます
セキュリティ、カスタマイズ、および高度な機(jī)能:
提供されたコードには、重要なセキュリティ対策がありません(NonCe検証)。 CSRF攻撃を防ぐために、Noncesの追加を強(qiáng)くお?jiǎng)幛幛筏蓼埂? さらなるカスタマイズ(CSSによるスタイリング、強(qiáng)化された検証、CAPTCHA統(tǒng)合、ファイルアップロードなど)は、特定の要件に基づいて実裝できます。 元のテキストのFAQSセクションは、これらの機(jī)能強(qiáng)化に関するガイダンスを提供します。 脆弱性を防ぐために、すべてのユーザー入力を消毒することを忘れないでください
以上がAjax連絡(luò)フォームを作成するためのWordPressプラグインを構(gòu)築するの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

WordPressがサーバーCPU使用の急増を引き起こす主な理由には、プラグインの問(wèn)題、非効率的なデータベースクエリ、テーマコードの品質(zhì)の低さ、またはトラフィックの急増が含まれます。 1.最初に、トップ、HTOP、またはコントロールパネルツールを介したWordPressによって引き起こされる高い負(fù)荷であるかどうかを確認(rèn)します。 2.トラブルシューティングモードを入力して、プラグインを徐々に有効にしてパフォーマンスのボトルネックをトラブルシューティングし、QueryMonitorを使用してプラグインの実行を分析し、非効率的なプラグインを削除または交換します。 3.キャッシュプラグインをインストールし、冗長(zhǎng)データをクリーンアップし、スロークエリログを分析してデータベースを最適化します。 4.トピックには、コンテンツの過(guò)負(fù)荷、複雑なクエリ、キャッシングメカニズムの欠如などの問(wèn)題があるかどうかを確認(rèn)します。標(biāo)準(zhǔn)のトピックテストを使用して、コードロジックを比較および最適化することをお?jiǎng)幛幛筏蓼?。上記の手順に従って、?chǎng)所を確認(rèn)して解決し、問(wèn)題を1つずつ解決します。

JavaScriptファイルをマイニングすると、ブランク、コメント、役に立たないコードを削除することにより、WordPress Webサイトの読み込み速度を向上させることができます。 1。W3TOTALCACHEなどの圧縮をサポートするキャッシュプラグインを使用し、「MINIFY」オプションで圧縮モードを有効にし、選択します。 2。FastVelocityMinifyなどの専用圧縮プラグインを使用して、より細(xì)かい制御を提供します。 3. JSファイルを手動(dòng)で圧縮し、FTPを介してアップロードします。これは、開(kāi)発ツールに精通しているユーザーに適しています。一部のテーマまたはプラグインスクリプトは圧縮関數(shù)と競(jìng)合する可能性があり、アクティベーション後にWebサイト機(jī)能を徹底的にテストする必要があることに注意してください。

プラグインに依存しないWordPressサイトを最適化する方法は次のとおりです。1。積み重なったテーマを避けるために、AstraやGeneratePressなどの軽量テーマを使用します。 2. CSSおよびJSファイルを手動(dòng)で圧縮およびマージして、HTTP要求を削減します。 3.アップロードする前に畫像を最適化し、WebP形式を使用し、ファイルサイズを制御します。 4. configure.htaccessブラウザキャッシュを有効にし、CDNに接続して靜的リソースの負(fù)荷速度を向上させます。 5.記事の改訂を制限し、定期的にデータベース冗長(zhǎng)データをクリーンにします。

Transientapiは、自動(dòng)有効期限データを一時(shí)的に保存するためのWordPressの組み込みツールです。そのコア関數(shù)は、set_transient、get_transient、delete_transientです。 OptionsAPIと比較して、Transimentsは、Cache API要求の結(jié)果や複雑なコンピューティングデータなどのシナリオに適した、生存時(shí)間(TTL)の設(shè)定をサポートしています。それを使用する場(chǎng)合、キーネーミングと名前空間の獨(dú)自性、キャッシュ「怠zyな削除」メカニズム、およびオブジェクトキャッシュ環(huán)境では続かない問(wèn)題に注意を払う必要があります。一般的なアプリケーションシナリオには、外部要求頻度の削減、コード実行リズムの制御、ページの読み込みパフォーマンスの改善が含まれます。

PluginCheckは、WordPressユーザーがプラグインの互換性とパフォーマンスをすばやくチェックするのに役立つツールです。主に、現(xiàn)在インストールされているプラ??グインに、WordPressの最新バージョン、セキュリティの脆弱性などと互換性がないなどの問(wèn)題があるかどうかを特定するために使用されます。インストールとアクティベーションの後、バックグラウンドの「runaScan」ボタンをクリックして、すべてのプラグインを自動(dòng)的にスキャンします。 2。レポートには、プラグイン名、検出タイプ、問(wèn)題の説明、およびソリューションの提案が含まれています。これにより、深刻な問(wèn)題の優(yōu)先処理が容易になります。 3. WordPressを更新する前に検査を?qū)g行することをお?jiǎng)幛幛筏蓼?。ウェブサイトの異常が異常である?chǎng)合、または定期的に実行されて隠された危険を事前に発見(jiàn)し、將來(lái)の大きな問(wèn)題を回避することをお?jiǎng)幛幛筏蓼埂?/p>

コメントスパムを防ぐ最も効果的な方法は、プログラマティックな手段を介して自動(dòng)的に識(shí)別して傍受することです。 1.検証コードメカニズム(Googler CaptchaやHcaptchaなど)を使用して、特に公共のWebサイトに適した人間とロボットを効果的に區(qū)別します。 2.隠しフィールド(ハニーポットテクノロジー)を設(shè)定し、ロボットを使用して機(jī)能を自動(dòng)的に埋めて、ユーザーエクスペリエンスに影響を與えることなくスパムコメントを識(shí)別します。 3.コメントコンテンツのブラックリストを確認(rèn)し、敏感な単語(yǔ)の一致を通じてスパム情報(bào)をフィルタリングし、誤判斷を避けるために注意を払ってください。 4.コメントの頻度とソースIPを判斷し、単位時(shí)間あたりの提出數(shù)を制限し、ブラックリストを確立します。 5.サードパーティのスパムサービス(Akismet、CloudFlareなど)を使用して、識(shí)別の精度を向上させます。ウェブサイトに基づいていることができます

Gutenbergブロックを開(kāi)発する場(chǎng)合、エンキュー資産の正しい方法には次のものが含まれます。1。register_block_typeを使用して、editor_script、editor_style、およびstyleのパスを指定します。 2。functions.phpまたはプラグインでwp_register_scriptとwp_register_styleを介してリソースを登録し、正しい依存関係とバージョンを設(shè)定します。 3.適切なモジュール形式を出力し、パスが一貫していることを確認(rèn)するためのビルドツールを構(gòu)成します。 4. Add_Theme_SupportまたはEnqueue_Block_Assetsを介してフロントエンドスタイルの読み込みロジックを制御して、フロントエンドスタイルのロードロジックが確保されるようにします。

カスタムユーザーフィールドを追加するには、プラットフォームに従って拡張メソッドを選択し、データ検証と許可制御に注意を払う必要があります。一般的なプラクティスには次のものが含まれます。1。データベースの追加のテーブルまたはキー価値ペアを使用して情報(bào)を保存します。 2.フロントエンドに入力ボックスを追加し、バックエンドと統(tǒng)合します。 3。機(jī)密データのフォーマットチェックとアクセス許可を制約します。 4.モバイルの適応とユーザーエクスペリエンスを考慮しながら、新しいフィールド表示と編集をサポートするインターフェイスとテンプレートを更新します。
