wordpress:強力なCMSおよびプラグイン開発ガイド
WordPressは、現在利用可能な最も堅牢なコンテンツ管理システム(CMS)としてSupremeを支配します。その柔軟性と拡張性により、最小限の労力で洗練されたWebサイトを作成できます。 このパワーは、主にそのプラグインとテーマアーキテクチャに由来しています。 公式のWordPressリポジトリには、その活気に満ちたコミュニティの証である約21,000の無料プラグインがあります。既存のプラグインを活用することは便利ですが、カスタムプラグインの開発は、WordPress開発者に比類のないカスタマイズと有利な機会を提供します。この記事では、WordPressディレクトリ構造の基本的な理解を仮定して、WordPressプラグインの開発の重要な側面を概説しています。
重要な概念
ディレクトリ内に新しいプラグインフォルダーを作成することから始めます。 このフォルダー内にプラグインファイルを配置します。 プライマリファイルが必要です。ハイフン( - )を使用して、ファイル名で単語を分離します(例:)。 メインファイルには、プラグインを認識するために、WordPressの次のヘッダーコメントブロックを含める必要があります。
保存後、プラグインはWordPress Dashboardのプラグインセクションに表示されます。
/wp-content/plugins/
wp-enhanced-slider.php
<?php /* Plugin Name: Sample Plugin Plugin URI: https://yourwebsite.com/sample-plugin Description: A brief description of your plugin. Version: 1.0 Author: Your Name Author URI: https://yourwebsite.com License: GPL2 */ ?>
プラグインのアクティブ化は、通常、ダッシュボードを介して行われます。 単純なプラグインは特別な取り扱いを必要としません。ただし、アクティベーション中に、高度なプラグインがオプションを初期化したり、テーブルを作成したりする必要がある場合があります。
register_activation_hook
<?php /* Plugin Name: Sample Plugin Plugin URI: https://yourwebsite.com/sample-plugin Description: A brief description of your plugin. Version: 1.0 Author: Your Name Author URI: https://yourwebsite.com License: GPL2 */ ?>
register_deactivation_hook
function my_plugin_activation() { // Your activation code here } register_activation_hook(__FILE__, 'my_plugin_activation');
WordPressの既存のテーブルは非常に順応性が高いものの、複雑なプラグインがカスタムテーブルを必要とする場合があります。 実行可能なときはいつでも
およびメタテーブルを使用して優先順位を付けます。 カスタムテーブルが避けられない場合は、次のアプローチを使用してください
wp_options
function my_plugin_deactivation() { // Your deactivation code here } register_deactivation_hook(__FILE__, 'my_plugin_deactivation');
よりも推奨されます。{$wpdb->prefix}
dbDelta
$wpdb->query
4。スクリプトとスタイルを含む
効率的なスクリプトとスタイルシートの包含については、および
を使用してください:
wp_enqueue_script
wp_enqueue_style
管理者サイドスクリプトに
global $wpdb; $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_custom_table"); $sql = "CREATE TABLE {$wpdb->prefix}my_custom_table ( id INT(11) NOT NULL AUTO_INCREMENT, // ... your table columns ... PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql);
admin_enqueue_scripts
wp_localize_script
5。ショートコード
ショートコードは、再利用可能なコンテンツブロックを埋め込む簡単な方法を提供します:
6。コンテンツフィルタリングadd_action('wp_enqueue_scripts', 'my_plugin_scripts'); function my_plugin_scripts() { wp_enqueue_script('my-custom-script', plugins_url('my-script.js', __FILE__), array('jquery')); wp_enqueue_style('my-custom-style', plugins_url('my-style.css', __FILE__)); }
:
を使用したフィルターの投稿またはページコンテンツ
add_filter('the_content', 'my_content_filter')
add_shortcode('my_shortcode', 'my_shortcode_function'); function my_shortcode_function() { return '<p>This is my shortcode!</p>'; }
での作業 および
アクションを使用してajax要求を処理します:
wp_ajax
wp_ajax_nopriv
function my_content_filter($content) { // Modify the content here return $content; }
SQL注入を防ぐために、準備されたステートメントを常に使用してください:
9。オプションボックスの追加// JavaScript (using jQuery) jQuery.post(ajaxurl, {action: 'my_ajax_action'}, function(response) { // Handle the response }); // PHP add_action('wp_ajax_my_ajax_action', 'my_ajax_action_callback'); add_action('wp_ajax_nopriv_my_ajax_action', 'my_ajax_action_callback'); function my_ajax_action_callback() { // Process the Ajax request wp_die(); // Important: terminate the Ajax request }
WordPressメタボックスAPIを使用してカスタムオプションボックスを作成します:
10。セキュリティのためのノンセス$wpdb->prepare("SELECT * FROM {$wpdb->prefix}my_table WHERE id = %d", $id);
noncesを使用して、クロスサイトリクエスト偽造(csrf):を防止します
この拡張ガイドは、WordPressプラグインの開発における重要な側面のより包括的な概要を提供します。 最も最新の情報とベストプラクティスについては、公式のWordPress Codexを参照してください。以上がWordPressプラグイン開発者の10の必須スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。