کدهای php در طراحی قالب و پلاگین های وردپرس
سلام! برای آموزش طراحی قالب (Theme) ، ابزارک (Widget) و پلاگین (Plugin) در وردپرس، لازم است دانشآموزان با استانداردها و بهترین روشهای کدنویسی PHP در محیط وردپرس آشنا شوند. در ادامه یک لیست جامع و مرتب از کدهای استاندارد و مهم وردپرس بر اساس آخرین بروزرسانیها (تا نسخه 6.5 وردپرس) آورده شده است.
📚 فهرست مطالب
- استانداردهای کدنویسی PHP
- کدهای پایه در طراحی قالب (Theme)
- کدهای پایه در ساخت ابزارک (Widget)
- کدهای پایه در ساخت پلاگین (Plugin)
- کدهای کاربردی وردپرس (WP Functions)
- منابع مرجع رسمی و مستندات
🔹 ۱. استانداردهای کدنویسی
وردپرس از PHP Coding Standards مشخصی تبعیت میکند که شامل:
✅ متغیرها:
$var_name = ‘value’; // snake_case
✅ توابع:
function my_custom_function() {
// code here
}
✅ کلاسها:
class My_Custom_Class {
public function __construct() {
// constructor
}
}
✅ تعیین ثابتها:
define( ‘MY_CONSTANT’, ‘value’ );
✅ کامنتنویسی:
// Single line comment
/*
* Multi-line comment
*/
🔹 ۲. کدهای پایه در طراحی قالب
✅ functions.php
– فعالسازی قابلیتهای قالب
function my_theme_setup() {
add_theme_support( ‘title-tag’ );
add_theme_support( ‘post-thumbnails’ );
register_nav_menus( array(
‘primary’ => __( ‘Primary Menu’, ‘mytheme’ )
) );
}
add_action( ‘after_setup_theme’, ‘my_theme_setup’ );
function my_theme_scripts() {
wp_enqueue_style( ‘style’, get_stylesheet_uri() );
wp_enqueue_script( ‘main-js’, get_template_directory_uri() . ‘/js/main.js’, array(), null, true );
}
add_action( ‘wp_enqueue_scripts’, ‘my_theme_scripts’ );
✅ index.php
, single.php
, archive.php
, page.php
– لوپ استاندارد
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title( ‘<h2>’, ‘</h2>’ );
the_content();
endwhile;
endif;
✅ header.php
و footer.php
<?php wp_head(); ?>
<!– HTML Header –>
<?php wp_footer(); ?>
</body>
</html>
✅ sidebar.php
و register_sidebar
function my_theme_widgets_init() {
register_sidebar( array(
‘name’ => __( ‘Sidebar’, ‘mytheme’ ),
‘id’ => ‘sidebar-1’,
‘description’ => __( ‘Add widgets here.’, ‘mytheme’ ),
‘before_widget’ => ‘<section id=“%1$s” class=“widget %2$s”>’,
‘after_widget’ => ‘</section>’,
‘before_title’ => ‘<h2 class=“widget-title”>’,
‘after_title’ => ‘</h2>’,
) );
}
add_action( ‘widgets_init’, ‘my_theme_widgets_init’ );
🔹 ۳. کدهای پایه در ساخت ابزارک
✅ ایجاد ابزارک سفارشی:
class My_Custom_Widget extends WP_Widget {
public function __construct() {
parent::__construct(
‘my_custom_widget’,
__( ‘My Custom Widget’, ‘textdomain’ ),
array( ‘description’ => __( ‘A custom widget’, ‘textdomain’ ) )
);
}
public function widget( $args, $instance ) {
echo $args[‘before_widget’];
if ( ! empty( $instance[‘title’] ) ) {
echo $args[‘before_title’] . apply_filters( ‘widget_title’, $instance[‘title’] ) . $args[‘after_title’];
}
echo __( ‘Hello World!’, ‘textdomain’ );
echo $args[‘after_widget’];
}
public function form( $instance ) {
$title = ! empty( $instance[‘title’] ) ? $instance[‘title’] : __( ‘New title’, ‘textdomain’ );
echo ‘<p><label for=“‘ . esc_attr( $this->get_field_id( ‘title’ ) ) . ‘”>’ . __( ‘Title:’ ) . ‘</label>’;
echo ‘<input class=“widefat” id=“‘ . esc_attr( $this->get_field_id( ‘title’ ) ) . ‘” name=“‘ . esc_attr( $this->get_field_name( ‘title’ ) ) . ‘” type=“text” value=“‘ . esc_attr( $title ) . ‘”></p>’;
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance[‘title’] = ! empty( $new_instance[‘title’] ) ? strip_tags( $new_instance[‘title’] ) : ”;
return $instance;
}
}
function register_my_custom_widget() {
register_widget( ‘My_Custom_Widget’ );
}
add_action( ‘widgets_init’, ‘register_my_custom_widget’ );
🔹 ۴. کدهای پایه در ساخت پلاگین
✅ ساختار پایه یک پلاگین:
فایل: my-plugin/my-plugin.php
<?php
/**
* Plugin Name: My Custom Plugin
* Description: A custom plugin for WordPress.
* Version: 1.0
* Author: Your Name
*/
function my_plugin_init() {
// Do something
}
add_action( ‘init’, ‘my_plugin_init’ );
✅ افزودن منو در داشبورد ادمین:
function my_plugin_menu() {
add_menu_page(
‘My Plugin Settings’,
‘My Plugin’,
‘manage_options’,
‘my-plugin’,
‘my_plugin_settings_page’
);
}
add_action( ‘admin_menu’, ‘my_plugin_menu’ );
function my_plugin_settings_page() {
echo ‘<div class=“wrap”><h1>My Plugin Settings</h1></div>’;
}
✅ ایجاد اکشن و فیلتر سفارشی:
do_action( ‘my_custom_action’ );
apply_filters( ‘my_custom_filter’, $value );
🔹 ۵. کدهای کاربردی وردپرس
🔹 ۶. منابع مرجع رسمی و مستندات
- WordPress Developer Resources
- PHP Coding Standards
- Theme Handbook
- Plugin Handbook
- Widgets API
- Gutenberg Handbook (Block Editor)
💡 نکات آموزشی برای دانشآموزان
- همواره از
wp_enqueue_script
وwp_enqueue_style
برای درج فایلها استفاده کنید. - از
esc_html_
وsanitize_text_field
برای ایمنسازی دادهها استفاده کنید. - از
add_action
وadd_filter
به درستی استفاده کنید. - تمامی متون را با
__()
یا_e()
برای چند زبانه کردن ترجمه کنید. - تست پلاگینها و قالبها روی محیطهای مختلف (PHP 8.0+ و وردپرس 6.x) انجام دهید.
📁 پیوست: دانلود قالب و پلاگین استاندارد
میتوانید از قالبها و پلاگینهای استاندارد زیر استفاده کنید:
- قالب استاندارد : Underscores (_s)
- پلاگین استاندارد : WordPress Plugin Boilerplate