ایجکس (Ajax) در وردپرس و اشتباهات مرگباری که توسعه دهنده وردپرس در قالب انجام می دهد؟
پرفروش ترین افزونه های وردپرس
گشترس امکانات وردپرس با اتصال به سرویس های همسو
اتصال استاندارد رسانه های وردپرس ، فایل های ووکامرس ، EDD و گرویتی فرم به هاست دانلود
افزایش هشتاد درصدی سرعت وب سایت های وردپرس با اتصال تصاویر ، ویدیو ، صوت و فایل های فروشگاه ووکامرس ، Easy Digital Downloads و گرویتی فرم به هاست دانلود با قابلیت تغییر لینک اتوماتیک رسانه ها در محتوا و محافظ از سرقت فایل فروشی
۶,۰۰۰,۰۰۰
۳,۸۷۰,۰۰۰ تومان
اتصال نرم افزار حسابداری راهکاران همکاران سیستم به افزونه فروشگاه ساز ووکامرس
اتصال دو طرفه بخش انبارداری یا محصولات ، مشتریان و فاکتور های نرم افزار حسابداری راهکاران از شرکت همکاران سیستم با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
۶۰,۰۰۰,۰۰۰
۴۸,۴۳۰,۰۰۰ تومان
اتصال نرم افزار حسابداری سپیدار همکاران سیستم به افزونه ووکامرس به همراه پکیج وب سرویس دو طرفه
اتصال دو طرفه بخش انبارداری یا محصولات و فاکتور های نرم افزار حسابداری سپیدار از شرکت همکاران سیستم با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
۴۵,۰۰۰,۰۰۰
۳۸,۷۶۰,۰۰۰ تومان
اتصال نرم افزار حسابداری هلو به افزونه فروشگاه ساز ووکامرس به همراه پکیج وب سرویس دو طرفه
اتصال دو طرفه بخش انبارداری یا محصولات ، مشتریان و فاکتور های نرم افزار حسابداری هلو با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول ، ایجاد فاکتور های اتوماتیک به نام مشتریان وردپرس در نرم افزار حسابداری
۲۵,۰۰۰,۰۰۰
۱۸,۳۴۰,۰۰۰ تومان
اتصال یک یا چند پنل فروشندگان دیجی کالا به افزونه فروشگاه ساز ووکامرس
اتصال و هماهنگی بخش محصولات ، و سفارشات پنل فروشندگان دیجی کالا با افزونه فروشگاه ساز ووکامرس ، همراه با قابلیت بروزرسانی هماهنگ موجودی ها و قیمت های محصول و مدیریت لیست سفارشات دیجی کالا در مدیریت وردپرس
۲,۸۰۰,۰۰۰
۲,۴۳۰,۰۰۰ تومان
اتصال و هماهنگی دو یا چند وب سایت فروشگاه ووکامرس
اتصال و یکپارچه سازی اطلاعات کامل محصولات (متغیر ، ساده ، خارجی و ..) ، مدیریت لیست سفارشات بین یک یا چند فروشگاه ووکامرسی با قابلیت وب هوک و ثبت تغییرات آنی و ایجاد عملیات گروهی ثبت یا ویرایش محصولات بین سایت ها در سریع ترین زمان
۸,۸۳۰,۰۰۰
۴,۶۴۰,۰۰۰ تومان
آکادمی وردپرس واقعی
دوره جامع مدیریت حرفه ای استارتاپ های وردپرس با خط فرمان و ابزار پکیج منیجر
در دوره جامع WP-CLI یاد خواهید گرفت، به شکل کاملا حرفه ای و با سرعت بیش تر یک یا چند وب سایت وردپرسی خود را مدیریت کنید.عملیات تکراری در مدیریت وردپرس را برای کاهش هدر رفت زمان خود سیستم سازی کنید. وردپرس شما در حین کار با خط فرمان فشار کم تری به سرور ایجاد می کند و این رویکرد می تواند وب سایت شما را بدون نقص و با سرعت عالی ارائه دهد
- محتوای آموزشی: ۴۶ جلسه آموزشی شامل ۱۶ ساعت ویدیو آموزشی به همراه تمرینات و فایل PDF خلاصه محتوا
- پروژه عملی دوره: نصب و مدیریت کامل بخش های یک استارتاپ وردپرس در هاست
- کلاس رفع اشکال: کلاس آنلاین ۳۰ دقیقه ای در پایان دوره به صورت کاملا خصوصی با استاد درزی برای تثبیت محتوا و رفع اشکالات دانشجو
۵,۶۹۷,۰۰۰ تومان



احسان فراهانی
خدایی همین یه آموزش با اندازه کل دوره های ضعیف و سرکاریه سایت های معروف ک میشناسیم میارزه واقعا دستتون درد نکنه با این مقالات ناب و ارزشمند و کمیاب
م.آ
سلام در استفاده از Rewrite API مدام با پیغام 404 روبرو می شم چون تمپلیت داخل سرور هست نمی دونم چطور بدون Cli بتونم Flush permalink کنم
مهرشاد درزی
شما کافی است در مدیریت وردپرس در قسمت تنظیمات پیوند های یکتا یکبار گزینه ذخیره را بزنید تا flush انجام شود.
احسان روانبخش
سلام وقتتون بخیر، من از روش rewrite api برای ایجکس استفاده کردم اما در این روش مثل wp-admin میشه ورودی هارو به صورت post ارسال کرد؟ چون الان به نظر فقط میشه اطلاعات به صورت get و در url ارسال کرد.
باتشکر
مهرشاد درزی
خیر هیچ تفاوتی ندارد ، شما می توانید به صورت formData در Ajax توسط پارامتر data استفاده کنید.
احسان روانبخش
سلام مجدد، ممنون از توضیحاتتون اما من به روشpost ، data رو ارسال میکنم اما در قسمت بکند ما از $wp_query->get(); جهت دریافت اطلاعات استفاده میکنید من از $_post هم استفاده کردم اما اطلاعاتی موجود نبود اما در روش wp-admin اطلاعات در $_post قابل دریافت هست. در این روش چطور باید اطلاعات post رو دریافت کنیم؟
مهرشاد درزی
دوست عزیز WP_Query برای دریافت اطلاعات ورودی پارامتر های آدرس یا Rewrite استفاده می شود ، شما برای دریافت اطلاعات ورودی فرم ها از همان POST و GET و یا بطور کلی REQUEST در همان آدرس می توانید استفاه کنید. این دو مقوله کاملا مجزا هستند.
احسان روانبخش
مشکل حل شد، روش ارسال اطلاعاتم مشکل داشت الان اصلاح کردم اطلاعات درست نمایش داده میشه در بک اند.
ممنون از معرفی این روش عالی
حمید حسینی تبار
سلام آقای درزی
نظرتون در مورد استفاده از lumen و یا laravel برای ایجاد api سفارشی در وردپرس چیه؟
اینطوری بجای کار با $wpdb میشه از eloquent استفاده کرد که از لحاظ امنیتی بسیار بهتر و سینتکس قویتری داره.
ممنونم
مهرشاد درزی
لود کردن کامل این فریم ورک ها در وردپرس کار اشتباهی هست چون باید مواردی مانند کش و .. بررسی گردد. از طرفی قرار دادن فایل wp-load در یک پروژه لاراولی هم اشتباه هست چون هوک های وردپرس مختل می شود.
اگر از جداول اختصاصی در پروژه استفاده می کنید از پکیج tareq1988/wp-eloquent می توانید بهره مند شوید. همچنین اخیرا افزونه ای آماده کردم برای استفاده از Validation های حرفه ای لاراول در API وردپرس برای Custom Endpoint.
آدرس:
https://github.com/mehrshaddarzi/wp-rest-api-validate
حمید حسینی تبار
ممنونم
استفاده از این 3 روش api رو خیلی خوب و عالی توضیح دادید
مورد اول و دوم رو میدونستم ولی نکات شون و مورد سوم برام تازگی داشت.
یک سوال کلی: بنظر شما وردپرس بهمراه فروشگاه ووکامرس برای چه تهداد کاربر همزمان جوابگو هست؟
آیا دوره ای دارید که برای کمتر شدن زمان لود سایتهای وردپرسی به بهترین شکل تهیه کنیم؟
مهرشاد درزی
پاسخ به این سوال به عوامل بسیار متعددی بستگی دارد از نحوه برنامه نویسی و صف ریکوئست ها تا کانفیگ سرور در وردپرس ، حتی به نوع انتخاب بانک اطلاعاتی هم بستگی دارد ، همه خودشان رو محدود به MySQL می کنند در صورتی که میتوان از این فراتر رفت.
در مورد سوال دوم شناخت از نحوه ی عملکرد وردپرس ، شما را تا حد قابل قبول از جریاناتی که در هسته ی وردپرس اتفاق می افتد آگاه می کند و همین شناخت باعث می شود که به خوبی ریکوئست ها را درک کنید. در دوره های منتور شیب خصوصی خودم به این مراتب می پردازم.
محمد صادقی
سلام وقت بخیر
امنیت مدل Rewrite API به چه صورت است ؟
تا جایی که فهمیدم هر بار url را روی آدرس بار قرار دهیم اجرا میشود، درست است ؟ این بد نیست از نظر امنیتی ؟
مهرشاد درزی
بصورت کلی بحث route ربطی به middleware ها و امنیت ندارد.ما در API وردپرس از پارامتر permission callback استفاده می کنیم. در Rewrite API هم شما کافیه در ابتدای کد دستوری خودتان موارد امنیتی و سطح دسترسی کاربر را چک کنید.
علی
سلام وقت بخیر
لطفا بفرمایید برای ساخت فرم ورود و ثبت نام به صورت ایجکس کدام روش سریع تر و امن تر است؟
بنده اکنون برای نوشتن این دو فرم از admin-ajax استفاده کرده ام.
ممنون
مهرشاد درزی
روش Rewrite API گزینه مناسب تری می باشد.
محمد جواد
سلام
کدها و اسکریپت های جاوا رو کجا باید بنویسیم ؟
مهرشاد درزی
شما میبایست در فایل js قرار دهید و به صفحه خود ضمیمه کنید توسط هوک wp_enqueue_scripts در وردپرس.
مستندات:
https://developer.wordpress.org/reference/hooks/wp_enqueue_scripts/
محمد جواد
سلام مجدد
من فایل js رو ضمیمه کردم با تابع wp_send_json_success هم فراخوانی شد خروجیش هم این میاد
{
"success": true,
"data": {
"tID": 100000000000,
"tName": "assssiaaaaaaaaaaaaa"
}
}
این یعنی که درست فراخوانی شده . درست متوجه شدم؟
حالا من می خواهم مقداری که براش می فرستم رو به select box اضافه کنه ولی نمی کنه
برای امتحان یه alert هم توی اسکریپت گذاشتم ولی نشون نداد
این هم اسکریپتی که نوشتم
jQuery(document).ready(function ($) {
$.ajax({
url: "",
type: "GET",
dataType: "json",
contentType: "application/json; charset=utf-8",
cache: false,
data: {
'action': 'add_translator'
},
success: function (data, textStatus, xhr) {
alert(xhr.responseJSON.html);
$("#tSelectBox").append('option6');
},
error: function (xhr, status, error) {
alert(xhr.responseJSON.html);
}
});
});
موووری
ESI لایت اسپید کش قوی تره یا AJAX Rewrite API؟
مهرشاد درزی
این دو مورد هیچ ارتباطی به یکدیگر ندارند ، قابلیت ESI در لایست اسپید برای جداسازی کش بخشی از صفحه استفاده میشه.
موووری
طبعا برای no cache کردن منظوره
مهرشاد درزی
شما ESI رو نمیتونید تو فرآیند چند مرحله ای استفاده کنید.
اگر درخواست شما تک مرحله ای هست بله گزینه خوبی هست اما دقت کنید اکثر نسخه های لایت اسپید در سرور ها این قابلیت را پشتیبانی نمی کنند تست بگیرید
رضایی
درود، آیا لود کردنِ به اینصورتِ یک برگه مهم مثل checkout ووکامرس از طریق url و ajax، مشکل امنیتی ای داره؟ چه راهی رو پیشنهاد میدید برای اینکار؟
$.ajax({
url: response.data.url,
type: "GET",
success: function (urlResponse) {
$('#load_checkout').html(urlResponse);
}
});
مهرشاد درزی
این کد تنها یک درخواست را دریافت می کند ، چه عملیاتی قرار است در BackEnd انجام شود این برای ما مهم است.
رضایی
در بکاند فقط url برگه checkout به صورت json پاس داده میشود(response.data.url) که به این صورت آن url لود میشود:
$('#load_checkout').html(urlResponse);
در کل سوالم اینه که همین لود کردن این صفحه بصوت ajax مشکل امنیتی ایجاد نمیکنه؟ چون checkout هست مهمه
مهرشاد درزی
اگر تنها یک آدرس ارسال می شود خیر مشکلی ندارد
سجاد راستی
با سلام و احترام.
بابت این مقاله و این نکته ارزشمند بسیار سپاسگزارم.
سلیمان
اگر بخوایم سایتمون رو فول ajax کنیم SPA در واقع، چطور باید کشینگ و موارد مربوط به سئو رو مدیریت کنیم؟ از lscache استفاده میکنم و سوالی که هست اینه که کش محتوا مثل لود عادی انجام میشه روی یک صفحه اگر با ajax فراخوانی بشه؟ کلا توصیهتون چیه در این مورد؟
مهرشاد درزی
افزونه های کش اکثرا روی صفحات وردپرس کش دارند ن روی درخواست های Ajax یا REST API.
برای این موارد در درجه ی اول باید از Object Cache کوئری دیتابیس استفاده بشه. و همچنین ی سیستم ساختاری کش باید بر اساس استراکچر API خودتون ایجاد کنید.
این افزونه تا حدودی برای این کار میتونه کمکتون کنه ولی کلی کش میکنه:
https://wordpress.org/plugins/wp-rest-cache
هر پروژه شماتیک کش منحصر به فرد خودش رو داره و نمیشه ی نسخه پیچید براش.
محمدرضا
سلام خسته نباشید یه سوال داشتم من دارم از rest api استفاده میکنم برای لود کردن یه سری پست، اما مشکلی که پیش میاد اینه که من برای اینکه api درست پست ها رو لود کنه باید هر بار کش رو خالی کنم یا ctrl + f5 بزنم و احساس میکنم بعد از قرار دادن کد api داخل سایت بقیه صفحات هم باید کامل کش رو خالی کنم لطفا راهنمایی کنید باید دقیقا چه کاری انجام بدم تا اینطوری نباشه ؟ آیا در وردپرس برای کش api باید تنظیماتی انجام داد تا این مشکل حل بشه ؟
مهرشاد درزی
کش سمت مرورگر دارید یا کش سمت سرور و وردپرس این دو مقوله با هم کاملا تفاوت دارند.
افزونه های کش وردپرس بر اساس Url کار میکنند که شما میتوانید در قسمت تنظیمات افزونه آدرس های مشخصی را از کش خالی کنید.
محمدرضا
من از هیچ افزونه کشی روی سایت استفاده نمیکنم به نظرم کش مرورگره ، به نظر شما باید چیکار کنم تا با این مشکل مواجه نشم لطفا راهنمایی کنید.
مهرشاد درزی
در قسمت Network برای کنسول یا Inspect مرورگر کروم تیک گزینه disable Cache را همیشه در زمان برنامه نویسی فعال داشته باشید تا کد خا بدون هیچ کشی تست شوند.
سوسن بنفشه
من print_r($wp_query) گرفتم در url ای که rewrite کرده بودم، مشاهده کردم که تمام پست های سایت را لود میکند و فکر میکنم چون این url یک پست تایپ ثبت شده نیست اینطور رفتار میکند، یا شاید علت دیگری داشته باشد نمیدانم، شما میدانید مشکل کجاست؟
[request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1 AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')))
ORDER BY wp_posts.post_date DESC
LIMIT 0, 5
[posts] => Array
(
[0] => WP_Post Object
(
[ID] => 346
و...
مهرشاد درزی
در صورتی که یک صفحه اختصاصی درست کرده آید در حالت پیش فرض وردپرس آن را یک صفحه آرشیو می داند به همین دلیل این کويری که اشاره کرده آید را فراخوانی می کند.
برای ریست کردن کوئری در صفحات اختصاصی از این راهنما استفاده کنید:
https://wordpress.stackexchange.com/a/145386
کاربر جدید
سلام، واقعاً مقاله مفید و کاربردی بود ممنون بابت اشتراکگذاری.
استاد یک سؤال داشتم که به درک بهتر مطالب و کاربردی کردنشون میتونه کمک کنه.
در سناریوهای مختلف زیر کدام روش برای مدیریت درخواستهای Ajax پیشنهاد میشه:
فرایند ثبتنام و ورد کاربران (فرم ورود/ثبتنام)
افزودن یک محصول یا مطلب به لیست علاقهمندیها
سبد خرید
بارگذاری اطلاعات فیلتر شده در صفحه محصول (فیلتر محصولات)
مهرشاد درزی
طبق تعریف تمامی ریکوئست های آجاکس در محیط فرانت قالب وردپرس باید با Rewrite استفاده شود.
اگر دقت کرده باشید خوده ووکامرس هم بوسیله wc-ajax نوعی rewrite ایجاد کرده.
کاربر جدید
خیلی ممنون بابت پاسخگویی 🙏.
این سؤال رو هم میپرسم که دیگه هیچ ابهامی برام نمونه.
مثلاً میتوانیم با ارسال درخواست به یک URL (ساخته شده با Rewrite) مثل (/api/v1/products/${category}/price/${price_min}-${price_max}) فیلتر محصولات رو مدیریت کنیم؟ به عبارتی دیگر مثل endpointهای سفارشی در Rest API میتوانیم از Rewrite API هم استفاده کنیم ولی با سرعت پاسخگویی بیشتر در شرایط مشابه!