نمونه کدهای عمومی وردپرس

نوشته شده توسط ادمین در یکشنبه ۱۴ بهمن ۰۳

نمونه کدهای عمومی وردپرس

نمونه کدهای عمومی وردپرس

نوشته شده توسط ادمین در یکشنبه ۱۴ بهمن ۰۳

وردپرس (WordPress) یک سیستم مدیریت محتوای (CMS) متن باز است که به کاربران اجازه می‌دهد وب‌سایت‌ها و وبلاگ‌ها را به راحتی ایجاد و مدیریت کنند. وردپرس با استفاده از زبان‌های برنامه‌نویسی PHP، HTML، CSS و JavaScript توسعه داده شده است. در اینجا برخی از کدهای رایج و مفید در وردپرس آورده شده است:

1. افزودن یک فایل CSS سفارشی به وردپرس

function my_theme_enqueue_styles() {

    wp_enqueue_style('my-custom-style', get_template_directory_uri() . '/css/custom-style.css');

}

add_action('wp_enqueue_scripts', 'my_theme_enqueue_styles');

2. افزودن یک فایل JavaScript سفارشی به وردپرس

function my_theme_enqueue_scripts() {

    wp_enqueue_script('my-custom-script', get_template_directory_uri() . '/js/custom-script.js', array('jquery'), null, true);

}

add_action('wp_enqueue_scripts', 'my_theme_enqueue_scripts');

3. ایجاد یک شورت‌کد (Shortcode) سفارشی

function my_custom_shortcode($atts) {

    $atts = shortcode_atts(array(

        'message' => 'Hello, World!',

    ), $atts, 'my_shortcode');


    return '<div class="my-shortcode">' . esc_html($atts['message']) . '</div>';

}

add_shortcode('my_shortcode', 'my_custom_shortcode');

استفاده در محتوا:


Copy

[my_shortcode message="این یک پیام سفارشی است!"]

4. ایجاد یک ویجت سفارشی

class My_Custom_Widget extends WP_Widget {

    public function __construct() {

        parent::__construct(

            'my_custom_widget',

            'ویجت سفارشی من',

            array('description' => 'این یک ویجت سفارشی است.')

        );

    }


    public function widget($args, $instance) {

        echo $args['before_widget'];

        echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title'];

        echo '<p>' . esc_html($instance['message']) . '</p>';

        echo $args['after_widget'];

    }


    public function form($instance) {

        $title = !empty($instance['title']) ? $instance['title'] : 'عنوان پیش‌فرض';

        $message = !empty($instance['message']) ? $instance['message'] : 'پیام پیش‌فرض';

        ?>

        <p>

            <label for="<?php echo $this->get_field_id('title'); ?>">عنوان:</label>

            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>">

        </p>

        <p>

            <label for="<?php echo $this->get_field_id('message'); ?>">پیام:</label>

            <textarea class="widefat" id="<?php echo $this->get_field_id('message'); ?>" name="<?php echo $this->get_field_name('message'); ?>"><?php echo esc_textarea($message); ?></textarea>

        </p>

        <?php

    }


    public function update($new_instance, $old_instance) {

        $instance = array();

        $instance['title'] = (!empty($new_instance['title'])) ? strip_tags($new_instance['title']) : '';

        $instance['message'] = (!empty($new_instance['message'])) ? strip_tags($new_instance['message']) : '';

        return $instance;

    }

}


function register_my_custom_widget() {

    register_widget('My_Custom_Widget');

}

add_action('widgets_init', 'register_my_custom_widget');

5. ایجاد یک صفحه تنظیمات سفارشی در پیشخوان وردپرس

function my_custom_settings_page() {

    add_menu_page(

        'تنظیمات سفارشی',

        'تنظیمات سفارشی',

        'manage_options',

        'my-custom-settings',

        'my_custom_settings_page_content',

        'dashicons-admin-generic',

        100

    );

}

add_action('admin_menu', 'my_custom_settings_page');


function my_custom_settings_page_content() {

    ?>

    <div class="wrap">

        <h1>تنظیمات سفارشی</h1>

        <form method="post" action="options.php">

            <?php

            settings_fields('my_custom_settings_group');

            do_settings_sections('my-custom-settings');

            submit_button();

            ?>

        </form>

    </div>

    <?php

}


function my_custom_settings_init() {

    register_setting('my_custom_settings_group', 'my_custom_setting');


    add_settings_section(

        'my_custom_settings_section',

        'بخش تنظیمات سفارشی',

        'my_custom_settings_section_callback',

        'my-custom-settings'

    );


    add_settings_field(

        'my_custom_setting_field',

        'فیلد تنظیمات سفارشی',

        'my_custom_setting_field_callback',

        'my-custom-settings',

        'my_custom_settings_section'

    );

}

add_action('admin_init', 'my_custom_settings_init');


function my_custom_settings_section_callback() {

    echo '<p>این بخش تنظیمات سفارشی است.</p>';

}


function my_custom_setting_field_callback() {

    $setting = get_option('my_custom_setting');

    echo '<input type="text" name="my_custom_setting" value="' . esc_attr($setting) . '" class="regular-text">';

}

6. افزودن یک نوع پست سفارشی (Custom Post Type)

function my_custom_post_type() {

    $labels = array(

        'name' => 'محصولات',

        'singular_name' => 'محصول',

        'menu_name' => 'محصولات',

        'add_new' => 'افزودن جدید',

        'add_new_item' => 'افزودن محصول جدید',

        'edit_item' => 'ویرایش محصول',

        'new_item' => 'محصول جدید',

        'view_item' => 'مشاهده محصول',

        'search_items' => 'جستجوی محصولات',

        'not_found' => 'محصولی یافت نشد',

        'not_found_in_trash' => 'محصولی در زباله‌دان یافت نشد'

    );


    $args = array(

        'labels' => $labels,

        'public' => true,

        'has_archive' => true,

        'publicly_queryable' => true,

        'query_var' => true,

        'rewrite' => array('slug' => 'products'),

        'capability_type' => 'post',

        'hierarchical' => false,

        'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'comments'),

        'menu_icon' => 'dashicons-cart',

        'show_in_rest' => true,

    );


    register_post_type('product', $args);

}

add_action('init', 'my_custom_post_type');

7. افزودن یک تاکسونومی سفارشی (Custom Taxonomy)

function my_custom_taxonomy() {

    $labels = array(

        'name' => 'دسته‌بندی‌های محصولات',

        'singular_name' => 'دسته‌بندی محصول',

        'search_items' => 'جستجوی دسته‌بندی‌ها',

        'all_items' => 'همه دسته‌بندی‌ها',

        'parent_item' => 'دسته‌بندی والد',

        'parent_item_colon' => 'دسته‌بندی والد:',

        'edit_item' => 'ویرایش دسته‌بندی',

        'update_item' => 'به‌روزرسانی دسته‌بندی',

        'add_new_item' => 'افزودن دسته‌بندی جدید',

        'new_item_name' => 'نام دسته‌بندی جدید',

        'menu_name' => 'دسته‌بندی‌ها'

    );


    $args = array(

        'hierarchical' => true,

        'labels' => $labels,

        'show_ui' => true,

        'show_admin_column' => true,

        'query_var' => true,

        'rewrite' => array('slug' => 'product-category'),

    );


    register_taxonomy('product_category', array('product'), $args);

}

add_action('init', 'my_custom_taxonomy');

8. افزودن یک متا باکس سفارشی (Custom Meta Box)

function my_custom_meta_box() {

    add_meta_box(

        'my_custom_meta_box_id',

        'اطلاعات اضافی',

        'my_custom_meta_box_callback',

        'product',

        'normal',

        'high'

    );

}

add_action('add_meta_boxes', 'my_custom_meta_box');


function my_custom_meta_box_callback($post) {

    wp_nonce_field('my_custom_meta_box_nonce', 'my_custom_meta_box_nonce');

    $value = get_post_meta($post->ID, '_my_custom_field', true);

    echo '<label for="my_custom_field">فیلد سفارشی: </label>';

    echo '<input type="text" id="my_custom_field" name="my_custom_field" value="' . esc_attr($value) . '" size="25" />';

}


function my_custom_save_meta_box_data($post_id) {

    if (!isset($_POST['my_custom_meta_box_nonce'])) {

        return;

    }

    if (!wp_verify_nonce($_POST['my_custom_meta_box_nonce'], 'my_custom_meta_box_nonce')) {

        return;

    }

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {

        return;

    }

    if (!current_user_can('edit_post', $post_id)) {

        return;

    }

    if (!isset($_POST['my_custom_field'])) {

        return;

    }

    $my_data = sanitize_text_field($_POST['my_custom_field']);

    update_post_meta($post_id, '_my_custom_field', $my_data);

}

add_action('save_post', 'my_custom_save_meta_box_data');

9. افزودن یک فیلد سفارشی به ویرایشگر گوتنبرگ (Gutenberg)

function my_custom_gutenberg_block() {

    wp_register_script(

        'my-custom-gutenberg-block',

        get_template_directory_uri() . '/js/my-custom-block.js',

        array('wp-blocks', 'wp-element', 'wp-editor')

    );


    register_block_type('my-plugin/my-custom-block', array(

        'editor_script' => 'my-custom-gutenberg-block',

    ));

}

add_action('init', 'my_custom_gutenberg_block');

10. افزودن یک نقش کاربری سفارشی (Custom User Role)

function my_custom_user_role() {

    add_role(

        'custom_role',

        'نقش سفارشی',

        array(

            'read' => true,

            'edit_posts' => true,

            'delete_posts' => false,

        )

    );

}

add_action('init', 'my_custom_user_role');

این کدها نمونه‌هایی از کارهایی هستند که می‌توانید در وردپرس انجام دهید. برای استفاده از این کدها، می‌توانید آن‌ها را در فایل functions.php قالب خود یا در یک پلاگین سفارشی قرار دهید.