رفتن به مطلب

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


پست های پیشنهاد شده

سلام دوستان

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

ممنون

 

 

ویرایش شده توسط masoudch
لینک به ارسال
در 8 دقیقه قبل، masoudch گفته است :

سلام دوستان

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

ممنون

 

 

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

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

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

ویرایش شده توسط mehran-b
لینک به ارسال
در 4 دقیقه قبل، masoudch گفته است :

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

ممنون

بفرمایید

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

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

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

ممنون

لینک به ارسال
در 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
لینک به ارسال

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

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

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

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

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

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

ویرایش شده توسط masoudch
لینک به ارسال

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

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

لینک به ارسال

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

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

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

مثلا شما یک پلاگین نوشتین میخواهید یک فایل 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 شما به هدر سایت اضافه میشه

لینک به ارسال
  • 3 هفته بعد...

سلام .

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

کلا فرق این دو تا نسخه چیه؟

لینک به ارسال
در 6 دقیقه قبل، sargon company گفته است :

سلام .

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

کلا فرق این دو تا نسخه چیه؟

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

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

در کل بخش توسعه وردپرس ربطی به زبان های وردپرس نداره.

ویرایش شده توسط mehran-b
لینک به ارسال
در 26 دقیقه قبل، sargon company گفته است :

سلام .

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

کلا فرق این دو تا نسخه چیه؟

زبانها جدا از هسته و ماژول های وردپرس هستن 
و فقط فایل ترجمه ای هستند (اختلاف هوک ها در نسخه هسته پوسته و افزونه وردپرس هست نه ترجمه)

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...