نحوه قراردادن کدهای php در فایل function.php (فانکشن)

مقدمه

فایل Function.php یکی از فایل های مهم و کاربردی قالب سایتتون هست که وظایف متعددی بر عهده داره . شما میتونید توابع مختلفی در این قالب قرار بدید که در بخش های مختلف سایت اجرایی بشه . این فایل دقیقاً مثل یک افزونه عمل میکنه و شما میتونید مزایای افزونه های متعددی رو از طریق اضافه کردن چند خط کد به فایل فانکشن اجرایی کنید.در این مقاله بهتون یاد میدیم اگر در آموزشی گفته شد کدی رو در فایل function قالب بزارید چطوری باید این کار رو انجام بدید
راهنمای مطالعه

همه چیز در مورد فایل فانکشن - function.php

فایل فانکشن قالب کجاست ؟

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

/public-html/wp-content/themes/قالب شما/function.php

اما ممکنه پوسته ای هم باشه که این فایل رو نداره . بنابراین میتونید خودتون براحتی در هاست یک فایل با نام و پسوند function.php ایجاد کنید و کدهای مورد نظرتون رو داخلش قرار بدید .

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

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

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

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

  1. پروتکل FTP چیه و چطوری باید ازش استفاده کنم؟

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

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

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

محتویات فایل فانکشن این شکلیه :


< ? php

یک عالمه کد جور واجور 

? >
 


اگر دقت کنید ابتدای این فایل باید عبارت php?> رو ببنید . کلیه کدهای php باید بین دو تا تگ زیر باشه :

< ? php     و      ? >

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

برای فهم بهتر فرض کنید فایل فانکشن اصلی ما این کدها رو داره :


< ? php

 // Disable Resize Large Image 
 add_filter( 'big_image_size_threshold', '__return_false' );

? >
 


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

به این ترتیب عمل می کنیم که ابتدا بررسی میکنیم ببینیم کد ارائه شده تگ php داره یا نه . چون کد ارائه شده این تگ رو داره و فایل فانکشن ما هم این تگ رو داره پس وجود دو تگ php داخل هم مشکل ایجاد میکنه و باید تگ php ابتدا و انتهای کد جدید رو برداریم بطوری که فقط دو خط وسط بمونه . حالا اون رو باید یه جایی بین تگ های php فایل فانکشن قرار بدیم . (هر جا که دلمون خواست !)

بهتره همون ابتدا این کار رو انجام بدیم و کدهای اختصاصی خودمون رو با فاصله از سایر کدها در بالای فایل قرار بدیم تا دسترسیمون بهش راحت تر باشه و بعداً بتونیم اونها رو مجزا کنیم . در نهایت فایل ما این شکلی میشه .


< ? php


 // Disable Resize Large Image 
 add_filter( 'big_image_size_threshold', '__return_false' );
 
 
if ( !defined('ABSPATH') ){ die(); }

global $avia_config;

if( isset( $avia_config['use_child_theme_functions_only'] ) )	{	return;		}

$checkfile = trailingslashit( pathinfo( __FILE__, PATHINFO_DIRNAME ) ) . 'config-include.php';
if( file_exists( $checkfile ) )
{
	require_once $checkfile;
}
$avia_config['posts_on_current_page'] = array();

if( ! current_theme_supports( 'avia_exclude_wpml' ) )
{
	require_once( 'config-wpml/config.php' );
}

require_once( 'config-layerslider/config.php' );

$avia_config['color_sets'] = array(
    'header_color'      => 'Logo Area',
    'main_color'        => 'Main Content',
    'alternate_color'   => 'Alternate Content',
    'footer_color'      => 'Footer',
    'socket_color'      => 'Socket'
 );
 
? >
 

اگر از این مطلب خوشتون اومده برای دوستاتونم ارسالش کنید!

6 پاسخ

  1. درود
    بزرگوار
    سایت وردپرسی من (که البته ووکامرسی هم هست) محتوای صفحاتش دوبار تکرار میشه. البته غیر از صفحه کالا و دسته بندی کالاها.
    مثلا صفحه تماس با ما یا درباره ما یا صفحه چک آوت .
    ممکنه بفرمایید علت چیه؟
    از قالب martfury استفاده کردم
    این هم آدرس وب سایتمه hagbaa.com

    1. درود بر شما :
      سایتتون به درستی باز نشد . متوجه منظورتون هم نشدم. پلاگین ها رو غیر فعال کنید ببینید مشکل از اونهاست یا نه . در ادامه اگر مشکل برطرف نشد قالبتون رو عوض کنید بررسی کنید مشکل از قالب هست یا نه. احتمالا با این دو روش مشکل رو پیدا می کنید. اونوفت میشه بررسی دقیق تری انجام داد

  2. سلام خط ۱۰۵۹ من در فایل Function.php در wp_includes خطا داره من نمی دونم خطاش چیه تو این خط نوشته Function add_query_arg(… $args) لطفا بگید باید کجاشو تغییر بدم

  3. سلام من استباهی فایل fonction رو داخل سایت تغییر دادم الان wp-adminبالا نمیاد باید چیکار کنم
    بک اپ هم از fonction دارم داخل هاست جای گذاری کردم اما درست نشد
    ممنون میشم راهنمایی کنید

    1. درود بر شما. از طریق هاست باید فایل فانکشن رو اصلاح کنید. ممکنه یه سری کد رو حذف کرده باشید یا تغییری در اونها داده باشید. بهترین راه اینه که به هاستتون بگید بکاپ این فایل رو از روزهای قبل برگردونن.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

دانلود کتاب الکترونیکی

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