ডেভসংকেত

ওয়ার্ডপ্রেস প্লাগিন ডেভেলপমেন্ট

ওয়ার্ডপ্রেস (CMS) এর অন্যতম গুরুত্বপূর্ণ অংশ হচ্ছে ওয়ার্ডপ্রেস-প্লাগিন। এটি ব্যবহারকারিদের কাজের সুবিধার্থে ওয়ার্ডপ্রেসের কোর ফাংশন গুলিকে বর্ধিত করার অনুমতি দেয়।

কন্ট্রিবিউটর

    শেয়ার করুন

    ওয়ার্ডপ্রেস প্লাগিনের বেসিক টেমপ্লেটগুলো

    • প্লাগিন এন্ট্রি ডিরেক্টরি

      plugin name
    • প্লাগিন এন্ট্রি ফাইল

      plugin-name.php
    • এম্পটি ইনডেক্স ফাইল

      index.php

    এন্ট্রি ফাইল হেডার ফিল্ডগুলো

    • প্লাগিনের নাম (অবশ্যই থাকতে হবে)

      Plugin Name:
    • প্লাগিনের এড্রেস

      Plugin URI:
    • সংক্ষিপ্ত বিবরণী

      Description:
    • প্লাগিনের বর্তমান ভার্সন

      Version:
    • সর্বনিম্ন ওয়ার্ডপ্রেস ভার্সন

      Requires at least
    • সাইটের সর্বনিম্ন PHP ভার্সন

      Requires PHP:
    • প্লাগিন অথোরের নাম

      Author:
    • প্লাগিন অথোরের এড্রেস

      Author URI:
    • প্লাগিনের লাইসেন্স নম্বর

      License:
    • লাইসেন্স এর এড্রেস

      License URI:
    • টেক্সট ডোমেইন(ইউনিক আইডেন্টিটি)

      Text Domain:
    • ট্রান্সলেটেড ল্যাঙ্গুয়েজের পাথ

      Domain Path:
    • নেটওয়ার্ক এক্টিভেশন

      Network:

    অ্যাকশন হুক এবং ফিল্টার

    • কোনো অ্যাকশনকে ধরার জন্য

      add_action( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
    • নতুন অ্যাকশন তৈরির জন্য

      do_action( string $tag,  $arg = '' );
    • ফিল্টার অ্যাড করার জন্য

      add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 );
    • ফিল্টার করার জন্য

      apply_filters( string $tag, mixed $value );

    প্লাগইন সিকিউরিটি (ইউসার রোলেস)

    • add_role()
    • remove_role()
    • get_role()
    • add_cap()
    • remove_cap()
    • user_can()
    • current_user_can()

    প্লাগইন সিকিউরিটি (সিকিউরিং ইনপুট)

    • sanitize_email()
    • sanitize_file_name()
    • sanitize_hex_color()
    • sanitize_hex_color_no_hash()
    • sanitize_html_class()
    • sanitize_key()
    • sanitize_meta()
    • sanitize_mime_type()
    • sanitize_option()
    • sanitize_sql_orderby()
    • sanitize_text_field()
    • sanitize_title()
    • sanitize_title_for_query()
    • sanitize_title_with_dashes()
    • sanitize_user()
    • esc_url_raw()
    • wp_filter_post_kses()
    • wp_filter_nohtml_kses()

    অ্যাডমিনিস্ট্রেশন মেনু

    • add_menu_page()
    • add_submenu_page()
    • add_dashboard_page() – index.php
    • add_posts_page() – edit.php
    • add_media_page() – upload.php
    • add_pages_page() – edit.php?post_type=page
    • add_comments_page() – edit-comments.php
    • add_theme_page() – themes.php
    • add_plugins_page() – plugins.php
    • add_users_page() – users.php
    • add_management_page() – tools.php
    • add_options_page() – options-general.php
    • add_options_page() – settings.php
    • add_links_page() – link-manager.php – requires a plugin since WP 3.5+
    • Custom Post Type – edit.php?post_type=wporg_post_type
    • Network Admin – settings.php

    সেটিংস

    • register_setting()
    • unregister_setting()
    • add_settings_section()
    • add_settings_field()
    • settings_fields()
    • do_settings_sections()
    • do_settings_fields()
    • add_settings_error()
    • get_settings_errors()
    • settings_errors()
    • add_option()
    • get_option()
    • update_option()
    • delete_option()
    • add_site_option()
    • get_site_option()
    • update_site_option()
    • delete_site_option()

    কাস্টম পোস্ট টাইপ & ট্যাক্সোনমি

    • register_post_type( string $post_type, array|string $args = array() )
    • single-{post_type}.php
    • archive-{post_type}.php
    • register_taxonomy( string $taxonomy, array|string $object_type, array|string $args = array() )

    অনুবাদ

    • __()
    • _e()
    • _x()
    • _ex()
    • _n()
    • _nx()
    • _n_noop()
    • _nx_noop()
    • translate_nooped_plural()
    • esc_html__()
    • esc_html_e()
    • esc_html_x()
    • esc_attr__()
    • esc_attr_e()
    • esc_attr_x()
    • number_format_i18n()
    • date_i18n()

    প্লাগিন বেসিক

    • এক্টিভেশন হুক সেটআপ করতে

      register_activation_hook( __FILE__, 'pluginprefix_function_to_run' )
    • ডিএক্টিভেশন হুক সেটআপ করতে

      register_deactivation_hook( __FILE__, 'pluginprefix_function_to_run' );
    • আনইনস্টল হুক সেটআপ করতে

      register_uninstall_hook(__FILE__, 'pluginprefix_function_to_run');
    • এক্সিস্টিং ভ্যারিয়াবলেস চেক করতে

      isset() (includes arrays, objects, etc.)
    • এক্সিস্টিং ফাংশনস চেক করতে

      function_exists()
    • এক্সিস্টিং ক্লাসেস চেক করতে

      class_exists()
    • এক্সিস্টিং কনস্ট্যান্টস চেক করতে

      defined()

    টেমপ্লেটে সবচেয়ে বেশি ব্যবহৃত ট্যাগগুলো

    • পোস্ট টাইটেল

      <?php the_title(); ?>
    • পোস্ট কন্টেন্টগুলো

      <?php the_content(); ?>
    • পোস্ট এক্সসার্প্ট

      <?php the_excerpt(); ?>
    • পোস্ট ক্যাটাগরি

      <?php the_category(', ') ?>
    • অথর এর তথ্য

      <?php the_author(); ?>
    • নির্দিষ্ট পোস্ট আইডির জন্য

      <?php the_ID(); ?>
    • পোস্ট এডিট লিংক

      <?php edit_post_link(); ?>
    • রেজিস্টার লিংক এর জন্য

      <?php wp_register(); ?>
    • রেজিস্টার ব্যবহারকারীদের লগঅন/লগ আউট লিংক পেতে

      <?php wp_loginout(); ?>
    • পরবর্তী পোস্ট লিংক এর জন্য

      <?php next_post_link(' %link ') ?>
    • পূর্ববর্তী পোস্ট লিংক এর জন্য

      <?php previous_post_link('%link') ?>

    প্লাগিন এবং কনটেন্ট ডিরেক্টরি

    • জাভাস্ক্রিপ্ট, সিএসএস, এবং অন্যান্য বাহ্যিক ফাইল প্লাগিন এ ব্যবহারের কোড

      plugins_url( 'myscript.js', _FILE_ );
    • plugins_url() ফাংশনটি প্লাগিন ডিরেক্টরি ইউআরএল রিটার্ন করে

      plugins_url('img/bar.jpg', __FILE__) || অউটপুট - http://www.example.com/wp-content/my-plugin/img/bar.jpg
    • plugin_dir_url() ফাংশনটি প্লাগিন ডিরেক্টরি ইউআরএল রিটার্ন করে ইউআরএল এর শেষে / সহ

      plugin_dir_url( __FILE__ ) . 'assets/styles.css' ) || অউটপুট http://www.example.com/wp-content/plugins/my-plugin/assets/styles.css
    • ফাংশনটি প্লাগিন এর ফাইল সিস্টেমের পাথ রিটার্ন করে ইউআরএল এর শেষে / সহ যদি __FILE__ পাস করা হয়

      plugin_dir_path()
    • প্লাগিন এর বেসনেম পেতে

      plugin_basename()
    • থিম ডিরেক্টরি ইউআরআই রিট্রিভ করতে

      get_template_directory_uri()
    • স্টাইলশীট ডিরেক্টরি ইউআরআই রিট্রিভ করতে

      get_stylesheet_directory_uri()
    • কারেন্ট থিম এর স্টাইলশীট ডিরেক্টরি ইউআরআই রিট্রিভ করতে

      get_stylesheet_uri()
    • থিম ডিরেক্টরি জন্য ইউআরআই রিট্রিভ করতে

      get_theme_root_uri()
    • থিম ডিরেক্টরি জন্য পাথ রিট্রিভ করতে

      get_theme_root()
    • থিম রুটস্ রিট্রিভ করতে

      get_theme_roots()
    • কারেন্ট থিম এর স্টাইলশীট ডিরেক্টরি পাথ রিট্রিভ করতে

      get_stylesheet_directory()
    • কারেন্ট থিম এর থিম ডিরেক্টরি রিট্রিভ করতে

      get_template_directory()
    • কারেন্ট সাইট এর ফ্রন্ট এন্ড ইউআরএল রিট্রিভ করতে

      home_url()
    • ওয়ার্ডপ্রেস ইন্সটল এর রুট অ্যাবসুলুট ফাইল সিস্টেমের পাথ পেতে

      get_home_path() || // Return 'Path: /var/www/htdocs/' or 'Path: /var/www/htdocs/wordpress/' if it is subfolder
    • কারেন্ট সাইট এর এডমিন এরিয়ার ইউআরএল রিট্রিভ করতে

      admin_url()
    • কারেন্ট সাইট এর ইউআরএল রিট্রিভ করে যেখানে ওয়ার্ডপ্রেস অ্যাপ্লিকেশান এর ফাইল গুলো থাকে

      site_url()
    • কন্টেন্ট ডিরেক্টরি এর ইউআরএল রিট্রিভ করতে

      content_url()
    • ইনক্লুড ডিরেক্টরি এর ইউআরএল রিট্রিভ করতে

      includes_url()
    • কারেন্ট আপলোড ডিরেক্টরি এর পাথ এবং ইউআরএল এর অ্যারে পেতে

      wp_upload_dir()
    • একটি প্রদত্ত সাইট এর এডমিন এরিয়ার ইউআরএল রিট্রিভ করতে

      get_admin_url()
    • একটি প্রদত্ত সাইট এর ফ্রন্ট এন্ড ইউআরএল রিট্রিভ করতে

      get_home_url()
    • একটি প্রদত্ত সাইট এর ইউআরএল রিট্রিভ করে যেখানে ওয়ার্ডপ্রেস অ্যাপ্লিকেশান এর ফাইল গুলো থাকে

      get_site_url()
    • নেটওয়ার্ক এনাবেল সাইট এর এডমিন এরিয়ার ইউআরএল রিট্রিভ করতে

      network_admin_url()
    • কারেন্ট নেটওয়ার্ক এর সাইট ইউআরএল রিট্রিভ করতে

      network_site_url()
    • কারেন্ট নেটওয়ার্ক এর হোম ইউআরএল রিট্রিভ করতে

      network_home_url()

    প্লাগইন সিকিউরিটি (ভ্যালিডেশন)

    • Array/ Object এ কোন key সেট করা আছে কিনা চেক করতে

      isset()
    • Array/ Object/ String খালি কিনা চেক করতে। এটা isset() এর কাজ ও করে।

      empty()
    • String এ কত গুলো char আছে জানতে

      mb_strlen() or strlen()
    • রেগুলার এক্সপ্রেশন দিয়ে কোন String থেকে Sub String বের করতে

      preg_match()
    • একটা String থেকে অন্য Sub String এর পজিশন বের করতে

      strpos()
    • Array তে কত গুলো এলিমেন্ট আছে জানতে

      count()
    • Array কিনা জানতে

      in_array()
    • is_email()
    • term_exists()
    • username_exists()
    • validate_file()

    প্লাগইন সিকিউরিটি (সিকিউরিং আউটপুট)

    • esc_html()
    • esc_url()
    • esc_js()
    • esc_attr()
    • esc_html__()
    • esc_html_e()
    • esc_html_x()
    • esc_attr__()
    • esc_attr_e()
    • esc_attr_x()

    শর্টকোড

    • [caption]
    • [gallery]
    • [audio]
    • [video]
    • [playlist]
    • [embed]
    • add_shortcode()
    • remove_shortcode()
    • shortcode_exists()

    মেটাডাটা

    • add_post_meta( int $post_id, string $meta_key, mixed $meta_value, bool $unique = false )
    • delete_post_meta( int $post_id, string $meta_key, mixed $meta_value = '' )
    • update_post_meta( int $post_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' )
    • add_meta_box( string $id, string $title, callable $callback, string|array|WP_Screen $screen = null, string $context = 'advanced', string $priority = 'default', array $callback_args = null )

    ইউসার

    • wp_create_user( string $username, string $password, string $email = '' )
    • wp_insert_user( array|object|WP_User $userdata )
    • update_user_meta( int $user_id, string $meta_key, mixed $meta_value, mixed $prev_value = '' )
    • wp_delete_user( int $id, int $reassign = null )

    ডেভেলপার টুলস

    • WordPress Plugin Boilerplate

      https://github.com/devinvinson/WordPress-Plugin-Boilerplate/
    • https://wordpress.org/plugins/query-monitor/
    • https://wordpress.org/plugins/debug-bar/
    • https://wordpress.org/plugins/debug-bar-console/
    • https://wordpress.org/plugins/debug-bar-shortcodes/
    • https://wordpress.org/plugins/debug-bar-constants/
    • https://wordpress.org/plugins/debug-bar-post-types/
    • https://wordpress.org/plugins/debug-bar-cron/
    • https://wordpress.org/plugins/debug-bar-actions-and-filters-addon/

    ডেভসংকেত সম্পর্কে

    ডেভসংকেত এর লক্ষ্য হচ্ছে বাংলাতে একটা বড় চিটশিটের ভান্ডার গড়ে তোলা। এটা সম্পূর্ণ স্বাধীন এবং ওপেন সোর্স গিটহাব অর্গানাইজেশন।

    স্পন্সর