تاریخ آپدیت: 1402/08/13
نویسنده: تیم محتوای ناگاتم
زمان مطالعه: 5دقیقه

پرکاربرد ترین کدهای سفارشی برای هسته وردپرس

همانطور که می‌دانیم، از افزونه‌ها می‌توان برای گسترش عملکرد سایت وردپرسی استفاده کرد. اما اگر بتوانید همان قابلیت‌ها را بدون نصب افزونه‌های متعدد به سایتتان اضافه کنید چه؟ به عنوان مثال: شما می‌خواهید سایت خود را روی حالت “تعمیر و نگهداری” قرار دهید. برای این امر می‌توانید دو کار انجام بدهید:

  1. نصب افزونه اضافی بر روی سایتتان
  2. افزودن یک قطعه کد به سایت

یا مثلا از نوار مدیریت در بالای سایت خوشتان نمی‌آید و می‌خواهید آن را حذف کنید. تمامی این کارها را می‌توانید با قطعه کدهایی که حتی از قبل هم نوشته شده‌اند و تنها کافیست آن‌ها را کپی و استفاده کنید انجام بدهید. درواقع با نصب یک افزونه، کارایی بی‌نهایت افزونه‌ را به سایتتان اضافه کنید و نگران اضافه شدن بار سنگین روی سایتتان و افت رتبه سئو سایت خود نباشید. تمامی این قابلیت‌ها با افزونه کد اسنیپت امکان پذیر می‌باشد. برای خرید افزونه کد اسنیپت پرو کلیک کنید.

همانطور که ممکن است حدس زده باشید، افزونه کد اسنیپت، در حالی که واقعا کاربری است، تمایل به تغییر عملکرد پیش فرض وردپرس دارد. با هر قطعه کد ممکن است یک حاشیه خطا وجود داشته باشد. به طور کلی، چنین مسائلی به دلیل افزونه‌ها و قالب‌های ناسازگار به وجود می‌آیند و زمانی که افزونه یا قالب مذکور را حذف می‌کنید یا تصمیم می‌گیرید از قطعه کد مذکور استفاده نکنید خطاها ناپدید می‌شوند. با این حال، برای اطمینان بیشتر، مطمئن شوید که قبل از ایجاد هر گونه تغییر و افزودن قطعه کد ، از وب سایت خود یک نسخه پشتیبان تهیه کنید. همچنین، اگر با هر گونه خطا یا مشکلات عملکردی در سایت مواجه شدید، مقاله آموزش 0 تا 100 کد اسنیپت پرو را مطالعه بفرمایید.

در این مقاله، چند قطعه کد بسیار مفید را برای کاربران وردپرس فهرست کرده‌ایم:

1) حالت تعمیر و نگهداری وردپرس

ممکن است قالب یا صفحه‌ساز شما قابلیتی برای “حالت تعمیر و نگداری” یا همان Maintenance Mode نداشته باشد. اگر عبارت Maintenance Mode را در مخزن وردپرس سرچ کنید، ده‌ها افزونه متفاوت برای این قابلیت وجود دارد. چیزی که شاید شما هر سال یکی دو بار به آن نیاز داشته باشید. آیا می‌خواهید برای چنین چیزی یک افزونه نصب کنید؟؟ به نظر شما منطقی است؟ چرا باید بخشی از سایت و دیتابیس سایتتان را به یک افزونه‌ای اختصاص دهید که ممکن است روزی به آن نیاز داشته باشید؟ پس راه چاره چیست؟ بهترین راه این است که در افزونه Code Snippets Pro قطعه کد زیر را کپی کنید. تمام!

// Activate WordPress Maintenance Mode
add_action( 'get_header', 'my_custom_wp_maintenance_mode' );
function my_custom_wp_maintenance_mode() {
	if ( !current_user_can( 'administrator' ) || !is_user_logged_in() ) {
		wp_die(
			'<h1>Website is Under Maintenance!</h1><br>
			<p>We are updating the site. It will be up very soon. Your patience is appreciated.</p>'
		);
	}
}

می‌توانید نام تابع را به دلخواه خود تغییر دهید. یا به جای my_custom یک کلمه منحصر به فرد یا نام سایت خودتان را بنویسید. (زیرا در بین تمامی کدهای php که در یک سایت اجرا می‌شوند، توابع باید نام‌های منحصر به فردی داشته باشند)

متن داخل تگ <h1> و تگ <p> هم قابل سفارشی سازی است. می‌توانید هر محتوایی در این بخش بنویسید.

2) اجازه به نقش کاربری مشارکت کننده برای بارگذاری تصویر

به طور پیش فرض، وردپرس به نقش‌های کاربری مشارکت کننده (Contributors) اجازه آپلود تصاویر را نمی‌دهد. مطمئناً می‌توانید آن نقش کاربری خاص را به نویسنده یا ویرایشگر ارتقاء دهید و این به آن‌ها امکان آپلود و اصلاح تصاویر را می‌دهد،. این کار باعث می‌شود، به آنها دسترسی‌های اضافی بیشتری (مانند انتشار مقالات) داده شود، که اصلاً کار درستی نیست!

این قطعه کد سفارشی به حساب‌های کاربری مشارکت‌کننده اجازه می‌دهد تا تصاویر را در مقاله‌های خود بارگذاری کنند، بدون اینکه به آنها امتیاز یا حقوق اضافی اعطا شود. در افزونه Code Snippets یک قطعه کد جدید اضافه کنید و کد زیر را منتشر کنید و تمام!

if ( current_user_can('contributor') && !current_user_can('upload_files') )
     add_action('admin_init', 'allow_contributor_uploads');      
     function allow_contributor_uploads() {
          $contributor = get_role('contributor');
          $contributor->add_cap('upload_files');
     }

3) غیرفعال کردن موتور جستجوی داخلی وردپرس

قابلیت جستجوی وردپرس مدت زیادی است که وجود داشته است. با این حال، اگر وب سایت شما به آن نیاز ندارد یا به دلایلی نمی‌خواهید کاربران در وب سایت شما «جستجو» کنند، می‌توانید از این قطعه کد استفاده کنید.

در اصل، این یک تابع سفارشی است که به سادگی ویژگی جستجو را غیرفعال می‌کند. نه فقط نوار جستجو در نوار کناری یا منو، بلکه کل مفهوم جستجوی بومی وردپرس را از کار می‌اندازد. چرا این می‌تواند مفید باشد؟ بدیهی است که، اگر وب سایت خود را روی سرور با منابع پایین اجرا می‌کنید و محتواهایی که نیاز به جستجو دارد ندارید یا وبلاگی در سایتتان ندارید، می‌توانید قابلیت جستجو را به طور کامل غیر فعال کنید

برای این منظور در افزونه Code Snippets یک قطعه کد جدید ایجاد کنید و سپس کدهای زیر را در آن کپی کنید:

add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
function fb_filter_query( $query, $error = true ) {
	if ( is_search() ) {
		$query->is_search = false;
		$query->query_vars[s] = false;
		$query->query[s] = false;
		// to error
		if ( $error == true )
		$query->is_404 = true;
	}
}

4) فعال‌سازی گوتنبرگ برای ویرایش تک محصولات

در صورتی که قصد دارید بجای استفاده از ویرایشگر کلاسیک، از ویرایشگر (و صفحه‌ساز) گوتنبرگ استفاده کنید، میتوانید از کد زیر استفاده کنید:

//  enable gutenberg for woocommerce
add_filter( 'use_block_editor_for_post_type', 'my_activate_gutenberg_product', 10, 2 );
function my_activate_gutenberg_product( $can_edit, $post_type ) {
 if ( $post_type == 'product' ) {
        $can_edit = true;
    }
    return $can_edit;
}

// enable taxonomy fields for woocommerce with gutenberg on
add_filter( 'woocommerce_taxonomy_args_product_cat', 'my_enable_taxonomy_rest' );
add_filter( 'woocommerce_taxonomy_args_product_tag', 'my_enable_taxonomy_rest' );
function my_enable_taxonomy_rest( $args ) {
    $args['show_in_rest'] = true;
    return $args;
}

نمونه کدهای بیشتر به زودی اضافه خواهند شد…