آموزش کدنویسی وردپرس
831 subscribers
118 photos
27 videos
10 files
113 links
ارتباط با مدیر:
@hamedmoody
Download Telegram
Forwarded from آموزش جامع PHP
Please open Telegram to view this post
VIEW IN TELEGRAM
شهادت حضرت فاطمه زهرا (س) تسلیت باد
15😭8👎4🖕2👍1
هوش مصنوعی خوبه اما برای استفاده اگه تخصص اون کارو نداشته باشی میتونه کارتو خراب کنه

مثلا من از Chat Gpt خواستم یه فایل امنیتی htaccess در اختیارم بذاره که یکی از موارد جلوگیری از اسکن اسکنرهاست یعنی این:
# --------------------------------------------------
# 🔥 11) Block bad bots & scanners
# --------------------------------------------------
RewriteCond %{HTTP_USER_AGENT} (httrack|wget|curl|libwww|nmap|sqlmap|fimap|python|nikto|scanner) [NC]
RewriteRule .* - [F,L]

یعنی میگه از user agent از اینا بود جلو درخواست رو بگیره که در ظاهر همه چی عالیه ولی مشکل کجاست؟

ما کرون وردپرس رو از طریق wget اجرا میکنیم و این درخواست عملا اجرا کرون رو به صورت کامل متوقف میکنه که به موارد استفاده از کرون بستگی داره که چقدر مشکل ساز بشه

در حال حاضر میشه از هوش مصنوعی به عنوان یک دستیار استفاده کرد که میتونه اشتباه هم بکنه و شما به عنوان اوستا باید حواست باشه. میتونه خیلی کارتو سرعت بده ولی در عین حال میتونه مشکل هم ایجاد کنه پس باید درست استفاده کرد مخصوصا حوزه برنامه نویسی
👍212
16👏1🎉1🖕1
90% تخفیف به مناسبت شب یلدا 🍉

🌐 https://www.daneshjooyar.com/php-tutorial/
🔥3👏1
یلداتون مبارک 🍉
11👏21
👏74🎉3👎2
میلاد حضرت علی(ع) و روز پدر مباک باشه🌹🌹
17🖕2👏1🎉1🤮1
carbon (1).png
2.5 MB
گاهی اوقات درخواست های Rest ما خیلی کند میشه و متوجه نمیشیم کدوم درخواست هست و چه پارامترهایی داره پس بهتره درخواست های کند رو لاگ کنیم تا برای بهینه سازی اقدام کنیم.

اینجا یک کلاس ساده رو گذاشتم که میتونه درخواست های طولانی از مقدار مشخص رو با پارامترها لاگ کنه تا بتونیم فرآیند بررسی مشکل و انجام بهینه سازی رو انجام بدیم

💡 خط 45 مسیر ذخیره فایل های لاگ رو مشخص میکنیم که باید تغییر بدید. تو کد خارج از public_html ساخته میشه

💡 خط 9 میگه اگه درخواست زیر چند ثانیه باشه لاگ انجام بشه

کانال @wp2learn رو دنبال کنید
4
اینم نمونه کد لاگ درخواست های کند:
<?php

class MyCustomLogger
{

private float $start_time = 0;
private int $start_memory = 0;

private float $slow_request_threshold = 0.25;

public function init() {
add_filter( 'rest_pre_dispatch', [ $this, 'before_request' ], 10, 3 );
add_filter( 'rest_post_dispatch', [ $this, 'after_request' ], 10, 3 );
}

public function before_request($response, $server, $request) {
$this->start_time = microtime( true );
$this->start_memory = memory_get_usage();
return $response;
}

public function after_request( $response, $server, $request){

$end_time = microtime(true);
$end_memory = memory_get_usage();
$peak_memory = memory_get_peak_usage();

$duration = $end_time - $this->start_time;

if( $duration > $this->slow_request_threshold ) {
return $response;
}

$memory_used = $end_memory - $this->start_memory;

$log_data = [
'route' => sanitize_text_field( $request->get_route() ),
'method' => sanitize_key( $request->get_method() ),
'params' => $request->get_params(),
'duration_sec' => $duration,
'memory_used_bytes' => $memory_used,
'peak_memory_bytes' => $peak_memory,
'ua' => $_SERVER['HTTP_USER_AGENT'] ?? '',
'timestamp' => current_time( 'mysql' )
];

$log_dir = ABSPATH . '../Logs/' . date('Y/m/');

if( ! file_exists( $log_dir ) ) {
mkdir( $log_dir, 0750, true );
}

$log_path = $log_dir . date('d') . '.log';

file_put_contents( $log_path, json_encode( $log_data ) . PHP_EOL, FILE_APPEND );

return $response;

}

}
6
This media is not supported in your browser
VIEW IN TELEGRAM
يا أَيَّتُهَا النَّفْسُ الْمُطْمَئِنَّةُ ارْجِعِي إِلى رَبِّكِ راضِيَةً مَرْضِيَّةً فَادْخُلِي فِي عِبادِي وَ ادْخُلِي جَنَّتِي

آمدم به عنوان قطره ای از دریای عزادار و خونخواهانت که بگم: لا نعلم منه الا خیرا

بدرود ایرانی ترین رهبر، خداحافظ
💩2221👎1🖕1
شرایط قطعی اینترنت و عدم ارتباط سایت وردپرسی با خارج از کشور، باعث کندی زیاد مخصوصا در بخش ادمین میشه که میتونین با کد زیر درخواست های خارجی که با دامنه های خاص مشخص شده رو ببنید
add_filter( 'pre_http_request', function( $pre, $args, $url ) {

$blocked_domains = [
'wordpress.org',
'api.wordpress.org',
'downloads.wordpress.org',
'themes.wordpress.org',
'plugins.wordpress.org'
];

$host = parse_url( $url, PHP_URL_HOST );

if ( $host ) {
foreach ($blocked_domains as $domain) {
if ( str_contains( $host, $domain ) ) {
return new \WP_Error( 'http_blocked', 'Request blocked for this domain' );
}
}
}

return $pre;

}, 10, 3 );
5
آموزش کدنویسی وردپرس
شرایط قطعی اینترنت و عدم ارتباط سایت وردپرسی با خارج از کشور، باعث کندی زیاد مخصوصا در بخش ادمین میشه که میتونین با کد زیر درخواست های خارجی که با دامنه های خاص مشخص شده رو ببنید add_filter( 'pre_http_request', function( $pre, $args, $url ) { $blocked_domains…
کد بالا فقط برای درخواست سمت سرور هست ولی برخی درخواست های فایل های css و js که در سمت کلاینت انجام میشه بعضا باعث کندی میشن که میتونین این درخواست ها رو با کد زیر حذف کنید. فقط حواستون به وابستگی های js باشه.
گرچه پیشنهاد اینه که در صورت امکان از کتابخونه ها به صورت لوکال روی سرور خودتون استفاده کنید نه CDN

اگه دامنه خاصی دارید باید داخل آرایه اضافه کنید که اصلا css یا js لود نشه:

add_filter('style_loader_src', 'block_external_assets', 10, 2);
add_filter('script_loader_src', 'block_external_assets', 10, 2);

function block_external_assets($src) {

$blocked = [
'fonts.googleapis.com',
'fonts.gstatic.com',
'cdnjs.cloudflare.com'
];

$host = parse_url($src, PHP_URL_HOST);

if ($host && in_array($host, $blocked)) {
return false;
}

return $src;
}
5
Media is too big
VIEW IN TELEGRAM
بررسی عملکرد چند تابع Multibyte String
4