masoudch

hook چیه به زبان ساده

10 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

سلام دوستان

کسی میتونه hook در وردپرس رو به زبان ساده توضیح بده خیلی گشتم تو اینترنت ولی خوب متوجه نشدم بدتر گیج شدم. لطفا راهنمایی مفصل و مفیدی بفرمایید.

ممنون

 

 

ویرایش شده در توسط masoudch
0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

در 8 دقیقه قبل، masoudch گفته است :

سلام دوستان

کسی میتونه hook در وردپرس رو به زبان ساده توضیح بده خیلی گشتم تو اینترنت ولی خوب متوجه نشدم بدتر گیج شدم. لطفا راهنمایی مفصل و مفیدی بفرمایید.

ممنون

 

 

نگاه کنید وردپرس یه سری توابع از پیش تعیین شده داره مثلا برای ارتباط با دیتابیس یا نمایش پست ها در صفحه اصلی و ... .

حالا فرض کنید یه توسعه دهنده بخواد مثلا نحوه ارتباط با دیتابیس رو تغییر بده خوب یا باید بره سورس وردپرس رو تغییر بده که خوب منطقی نیست چون بعد از آپدیت وردپرس همه تغییرات میپره این شد که وردپرس برای توابع تعریف شده از قبل یه چیزی طراحی کرد به اسم هوک که قابل انعطاف کنه اون توابع رو.

امیدوارم خوب توضیح داده باشم.

ویرایش شده در توسط mehran-b
1

به اشتراک گذاری این پست


لینک به پست

یه لیست از هوک های پرکاربرد و میتونید معرفی کنید.

ممنون

0

به اشتراک گذاری این پست


لینک به پست
در 4 دقیقه قبل، masoudch گفته است :

یه لیست از هوک های پرکاربرد و میتونید معرفی کنید.

ممنون

بفرمایید

https://adambrown.info/p/wp_hooks/hook?order=type

2

به اشتراک گذاری این پست


لینک به پست
در هم اکنون، bestdata گفته است :

این سایت و میدونستم اما خیلی زیاده میخواستم بدونم اون هایی که خیلی کاربرد داره و بیشتر استفاده میشن کدوم ها هستن.

ممنون

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

در 1 ساعت قبل، masoudch گفته است :

این سایت و میدونستم اما خیلی زیاده میخواستم بدونم اون هایی که خیلی کاربرد داره و بیشتر استفاده میشن کدوم ها هستن.

ممنون

زیاد نمیشه گفت کدوم پرکاربرده کدوم نیست. ولی شخصا این هوک ها رو زیاد استفاده میکنم.

  1. wp_head کاربردش اینه که با این hook میشه خروجی تابع wp_head که در تمامی قالب های وردپرس قبل از بسته شدن تگ head قرار میگیره رو ویرایش کرد.
  2. pre_get_posts کاربردش اینه که با این hook میشه روی حلقه اصلی وردپرس تغییرات انجام داد. مثلا حلقه اصلی وردرپس پست ها رو از جدیدترین به قدیمی ترین نشون میده با این hook میشه کاری کرد که رندوم نشون بده.
  3. template_redirect همون طور که از اسمش پیداست بیشتر ریدایرکت هایی که توسط وردپرس باید انجام بشه رو با این hook انجام میدن مثل ریدایرکت صفحات 404 به پیج اصلی.
  4. posts_where این هوک هم هوک مهمیه با استفاده از این هوک میتونید کوئری ارسال شده به دیتابیس توسط وردپرس جهت دریافت پست ها رو تغییر بدید.

و هزاران hook دیگه ای که وجود داره.

ویرایش شده در توسط mehran-b
2

به اشتراک گذاری این پست


لینک به پست

سلام دوست عزیز یه فیلم 5 دقیقه ای رایگان از آموزش اکشن هوک های وردپرس توی سایت وبسافت3 هست که فکرمیکنم بادیدنش بحث هوک های وردپرس رو کاملا متوجه بشید.

مشاهده آنلاین آموزش اکشن هوک های وردپرس

0

به اشتراک گذاری این پست


لینک به پست
در 7 ساعت قبل، websoft3.com گفته است :

سلام دوست عزیز یه فیلم 5 دقیقه ای رایگان از آموزش اکشن هوک های وردپرس توی سایت وبسافت3 هست که فکرمیکنم بادیدنش بحث هوک های وردپرس رو کاملا متوجه بشید.

مشاهده آنلاین آموزش اکشن هوک های وردپرس

یه ویدئو 5 دقیقه دیدم فک کنم همین باشه. ویدئوی کاملتر ندارید؟

ویرایش شده در توسط masoudch
0

به اشتراک گذاری این پست


لینک به پست

اون 5 دقیقه یه بخشی از دوره 70 جلسه ای طراحی قالب وردپرس هست

توی دوره در بخش کدنویسی پیشرفته وردپرس در مورد اکشن هوک ها کامل توضیح داده و مثال های مختلفی هم ازش کار شده اما خوب باید در دوره شرکت کنید

0

به اشتراک گذاری این پست


لینک به پست

ببینید هوک چیز خاص و بزرگی نیست.تو اکثر سیستمهای تحت وب و حتی ویندوز سیستمی بنام هوک وجود داره

هوک این قابلیت رو به شما میده که روند اجرای یک تابع رو مانیتور یا تغییر بدید.

این به این دلیل هست که شما وقتی از سیستم اماده مثل وردپرس استفاده میکنید.کدها نوشته شده و اماده هستن برای اضافه کردن بعضی قابلیتها  شما نیاز به تغییر در بعضی از توابع وردپرس دارین

مثلا شما یک پلاگین نوشتین میخواهید یک فایل javascript یا css به یک صفحه وردپرس اضافه کنین راه راحتش این هست که کدهای اون صفحه رو پیدا کنین و لینک فایلها رو در هدر اون قرار بدید.این کار شدنی هست اما روش درستی نیست چون

1.اگه وردپرس اپدیت بشه شما دوباره باید این کار رو انجام بدید

2.اگه بخواهید این پلاگین رو منتشر کنید بخش پلاگین وردپرس به شما اخطار میده در مورد ویرایش فایلهای اصلی وردپرس.

برای رفع این مشکلات وردپرس هوک رو در اختیار کاربران قرار داده هوک یا قلاب راهکاری هست در زمان فراخوانی شدن تابع مورد نظر شما دستورات شما رو اجرا میکنه

در ورد پرس از add_action برای تعریف هوک استفاده میشه که 4 پارامتر داره 2 تا اصلی و 2 تا اختیاری

1.اسم تابعی که میخواهید هوک کنید مثلا wp_head یا get_the_content یا pre_get_posts

2. اسم تابع شما (کدهای مورد نیاز رو باید در قالب یک تابع بنویسید)که باید در اون تابع وردپرس اجرا بشه

وردپرس 2 تا هوک داره add_action و add_filter که دومی بیشتر برای تغییر در محتوا هست

function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1);
function add_filter($tag, $function_to_add, $priority, $accepted_args);

مقدار priority اولویت اجرای هوک در لیست رو مشخص میکنه مثلا شما اگه نیاز دارید کد شما زودتر از بقیه کدها اجرا بشه مقدار1 و اگه نیازه بعد از همه کدها اجرا بشه مقدار 9999 بهش میدین که این مقدار اختیاری هست و پیشفرض 10

مقدار accepted_args تعداد ارگومانهایی هست که به تابع شما ارسال بشه که پیشفرض 1 هست

مثال:شما میخواهید یک فایل js یا css رو به هدر بخش کاربری اضافه کنید کد هوک شما به صورت زیر میشه

function child_theme_head_script() {
	wp_register_style( 'prefix-style', plugins_url('/css/your-stylesheet.css', __FILE__) );
	wp_enqueue_script('custom_script', plugins_url('/js/your-script.js', __FILE__),array('jquery'));
}

add_action( 'wp_head', 'child_theme_head_script' );

خب حالا هوک چطور کار میکنه تو سیستم وردپرس

اگه به فایل هدر یکی از تمپلیتهای استاندارد وردپرس نگاه بندازین به صورت زیر هست

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=assetsice-width, initial-scale=1">
	<meta http-equiv="x-ua-compatible" content="ie=edge">
	
	<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/assets/css/bootstrap.min.css">
	<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/assets/css/custom.css">
		
	<title></title>
	<?php wp_head(); ?>
	
</head>
<body>

از تابع wp_head استفاده میکنه وقتی  تابع wp_head اجرا میشه چه اتفاقی می افته

این تابع درون فایل wp-includes/general-template.php هست

function wp_head() {
	        /**
	         * Prints scripts or data in the head tag on the front end.
	         *
	         * @since 1.5.0
	         */
	        do_action( 'wp_head' );
	}

کار تابع do_action این هست که میاد هوک موبوطه رو از لیست هوکها اجرا میکنه که در اینجا بهش گفته شده هوک 'wp_head' رو اجرا کنه و تابع شما اجرا میشه و فایل js و css شما به هدر سایت اضافه میشه

4

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط mahdikabook
      من اینجا دارم میگم وقتی یه محصول ساخته شد بیا یه attributes اضافه کن ... الان هر کاری میکنم نمیشه ، نشه هم اضافه کرد میخوام حداقل یه آپدیت بکنه مثلا  "purchase_note" مقدارشو با 'mahdi' پر کنه اصلا کلا هیچی آرایه هم نگیره بیاد attribute purchase_note رو مقدارشو با mahdi پر کنه! 
      function add_this_to_new_products( $new_status, $old_status, $post ) { $defaults = array ( 'shopid' => array ( 'name' => 'shopid', 'value' => 'mahdi', 'position' => 1, 'is_visible' => 1, 'is_variation' => 1, 'is_taxonomy' => 1, ), ); update_post_meta( $post->ID , '_product_attributes', $defaults ); } add_action( 'transition_post_status', 'add_this_to_new_products', 10, 3 ); یا 
      function add_this_to_new_products( $new_status, $old_status, $post ) { $defaults = get_bloginfo(); update_post_meta( $post->ID , '_product_attributes', $defaults ); } add_action( 'transition_post_status', 'add_this_to_new_products', 10, 3 ); ممنون میشم کمک کنید
    • توسط Ali#
      سلام.
      می خواهم هنگامی که مطالب از قسمت bulk actions (کارهای دسته جمعی)، ویرایش شد، به همه نوشته هایی که انتخاب شده و ویرایش شده اند یک برچسب اضافه شود.
      من این کد را نوشتم ولی مشکلی که دارد این است که فقط به یک پست، برچسب را اضافه می کند در حالی که من می خواهم به همه نوشته هایی که انتخاب شده بودند اضافه کند.
      این هم کد:
      add_action('bulk_edit_custom_box', 'bulk_test'); function bulk_test() { $post_ID = get_the_ID(); wp_set_post_tags($post_ID,'test',true ); } دوستان می دانم مشکل از $post_ID است که فقط یک آی دی را وارد می کند. ولی راه حل را پیدا نمی کنم.
      کسی می تواند راهنمایی کند؟