ورڈ پریس میں functions.php فائل کیا ہے؟
functions.php فائل ورڈپریس پلگ ان کی طرح کام کرتی ہے، یہ ورڈپریس سائٹ میں مختلف خصوصیات کو شامل کرتی ہے۔
آپ اسے ورڈپریس کے Functions کو کال کرنے کے لیے اور اپنے خود کے Functions بنانے کے لیے بھی استعمال کر سکتے ہیں۔
ورڈپریس پلگ ان اور functions.php میں کیا فرق ہے۔
ورڈپریس پلگ ان | ٍFunctions.php |
---|---|
مخصوص، منفرد Header Text کی ضرورت ہوتی ہے۔ | مخصوص، منفرد Header Text کی ضرورت نہیں ہوتی ہے۔ |
عام طور پر پلگ ان فائلوں کو wp-content/plugins کی ذیلی ڈائرکٹری میں محفوظ کیا جاتا ہے | عام طور پر تھیم فائلوں کو wp-content/themes کی ذیلی ڈائرکٹری میں محفوظ کیا جاتا ہے |
جب Activated ہوتا ہے توصرف پیج لوڈ پر کام کرتا ہے۔ | صرف ایکٹو تھیم کی ڈائرکٹری میں ہی کام کرتا ہے |
تمام Themesپر استعمال ہوتا ہے؛ اوراس کا استعمال ایک ہی مقصدکے لیے ہونا چاہئے۔جیسے search engine optimization اور backups | صرف Activeتھیم پر استعمال ہوتا ہے اور اس میں کوڈ کے متعدد بلاکس ہوتے ہیں جوبہت سے مختلف مقاصد کے لیے استعمال ہو سکتے ہیں۔ |
ہر تھیم کی اپنی فنکشن فائل ہوتی ہے، لیکن صرف ایکٹیو تھیم کیfunctions.php میں ہی کوڈ کوچلایا جاتا ہے۔اگر آپ کی تھیم میں پہلے سے ہی فنکشن فائل ہے تو آپ اس میں کوڈ شامل کر سکتے ہیں۔اگر نہیں، تو آپ اپنی تھیم کی ڈائرکٹری میں شامل کرنے کے لیے functions.php نامی ایک سادہ ٹیکسٹ فائل بنا سکتے ہیں.
چائلڈ تھیم کی اپنی functions.php فائل ہو سکتی ہے۔اگر آپ چائلڈ تھیم کی functions.php فائل میں فنکشنز شامل کرتے ہیں تو بلا خوف اپنی Parent Theme میں ترمیم کرسکتے ہیں۔اس طرح، جبParent Theme کو اپ ڈیٹ کیا جاتا ہے، تو آپ کو اپنی چائلڈ تھیم میں نئے شامل کردہ فنکشن کے غائب ہونے کی کوئی فکر نہ ہوگی یعنی آپ کا چائلڈ تھیم اپنی اصلی حالت میں برقرار رہے گا۔
نوٹ:اگرچہ ورڈپریس میں چائلڈ تھیم کی functions.php فائل پیرنٹ تھیم کی functions.php فائل سے پہلے لوڈ ہوتی ہے۔یہ Parent Theme تھیم کی functions.php فائل کو اوور رائڈ نہیں کرتی ہے۔چائلڈ تھیم کی functions.php کو پیرنٹ تھیم کے فنکشنز کو بدلنے کے لیے استعمال کیا جا سکتا ہے۔اسی طرح، functions.php کسی بھی پلگ ان فائلوں کے لوڈ ہونے کے بعد لوڈ ہوتی ہے۔
آپ functions.php فائل کے ساتھ کیا کر سکتے ہیں.
- آپ ورڈپریس ہکس کا استعمال کرسکتے ہیں۔ مثال کے طور پر، excerpt_length فلٹر کی مدد سے آپ اپنی پوسٹ کے اقتباس کی لمبائی کو تبدیل کر سکتے ہیں۔
- آپ ()add_theme_support فنکشن کی مدد سے ورڈپریس کی خصوصیات کو فعال کر سکتے ہیں. جیسے post thumbnails, post formats, اور navigation menus کو اپنے تھیم میں شامل کرنا
- آپ ایسے فنکشنز بنا سکتے ہیں جنہیں آپ متعدد تھیم ٹیمپلیٹ فائلوں میں بارباراستعمال کرنا چاہتے ہیں۔
تنبیہ: اگر ورڈپریس پلگ ان اسی فنکشن یا فلٹرکو کال کرتا ہے، جیسا کہ آپ اپنی functions.php فائل میں کال کرتے ہیں، تو نتائج غیر متوقع ہوسکتے ہیں، یہاں تک کہ آپ کی سائٹ غیر فعال بھی ہو سکتی ہے۔
مثالیں:
ذیل میں متعدد مثالیں دی گئی ہیں جنہیں آپ اپنی functions.php فائل میں مختلف خصوصیات کو سپورٹ کرنے کے لیے استعمال کر سکتے ہیں۔آپ کے تھیم میں ان میں سے ہر ایک مثال کی اجازت ہے۔ اگر آپ اسے WordPress.org تھیم ڈائرکٹری میں submit کرنے کا انتخاب کرتے ہیں۔
Theme Setup
“سیٹ اپ” فنکشن کے اندر تھیم کی متعدد خصوصیات کو شامل کیا جا سکتا ہے جو ابتدائی طور پر آپ کی تھیم کے activated ہونے پر ہی چلتی ہیں.جیسا کہ ذیل میں دکھایا گیا ہے، ان میں سے ہر ایک فیچر کو آپ کی functions.php فائل میں شامل کیا جا سکتا ہے۔ جو تجویز کردہ ورڈپریس کی خصوصیات کو activate کرتی ہیں۔
Important
اپنے تھیم کا نام اپنے فنکشن کے نام کے ساتھ استعمال کریں تاکہ فنکشن کا منفرد پن واضع رہے. میں یہاں اپنے تھیم کے مطابق efaschool استعمال کر رہا ہوں.آپ اپنے تھیم کے مطابق کر سکتے ہیں.
اس ابتدائی فنکشن کو بنانے کے لیے، ()efaschool_setup کے عنوان سے ایک نیا فنکشن شروع کریں، اس طرح:
پی ایچ پی کے ان بلٹ فنکشنز میں سے ایک()function_exists ان بلٹ فنکشن ہے۔ اگر ہم یہ دیکھنا چاہتے ہیں کہ پی ایچ پی اسکرپٹ میں دیا گیا ()functionموجود ہے یا نہیں۔ اس کا استعمال بلٹ ان فنکشنز کے ساتھ ساتھ یوزر ڈیفائنڈ فنکشن دونوں کو چیک کرنے کے لیے کیا جاتا ہے۔جیسے
نوٹ: اوپر کی مثال میں، فنکشن ()efaschool_setup شروع ہوا ہے لیکن بند نہیں ہوا ہے۔ اپنے افعال کو بند کرنا یقینی بنائیں۔
Automatic Feed Links
خودکار فیڈ لنکس پوسٹ اور تبصرہ آر ایس ایس فیڈز کو بطور ڈیفالٹ فعال بناتا ہے۔یہ فیڈز خود بخودمیں ظاہر ہوں گی۔انہیں کلاسک تھیمز میں ()add_theme_supportکی مدد کال کیاجا سکتا ہے۔یہ خصوصیت بلاک تھیمز کے لیے خودکار طور پر فعال ہو جاتی ہے، اور تھیم سیٹ اپ کے دوران اسے شامل کرنے کی ضرورت نہیں ہے.
Navigation Menus
کلاسک تھیمز میں، خود ساختہ Navigation Menus صارفین کو اختیار دیتے ہیں کہ وہ مینو ایڈمن پینل میں مینو میں اپنی مرضی کی ترمیم کر سکیں.صارفین کو ان کے تھیم میں مختلف مینوز میں ترمیم کرنے کے لیے ڈریگ اینڈ ڈراپ انٹرفیس دیتا ہے۔
آپ functions.php میں متعدد مینو ترتیب دے سکتے ہیں۔انہیں ()register_nav_menus فنکشن کی مدد سے بنایا جا سکتا ہے اور ()wp_nav_menu فنکشن کی مدد سے تھیم میں داخل کیا جا سکتا ہے، جیسا کہ بعد میں اس کا ذکر کیا جائے گا۔اگر آپ کا تھیم ایک سے زیادہ مینو کی اجازت دیتا ہے، تو آپ کو ایک ()arrayکا استعمال کرنا چاہیے۔جبکہ کچھ تھیمز میں حسب ضرورت نیویگیشن مینیو نہیں ہوں گے۔یہ تجویز کیا جاتا ہے کہ آپ اس خصوصیت کو شامل کریں تاکہ Customization میں آسانی ہو..
تھیم میں جس جگہ آپ کسٹم مینیو کو شامل کر نا چاہتے ہیں وہاں ()Wp_nav_menu فنکشن کا استعمال کریں.
Load Text Domain
تھیمز کا متعدد زبانوں میں ترجمہ کیا جا سکتا ہے۔ بشرطکہ آپ کے تھیم میں ترجمہ کے لیےموجود الفاظ دستیاب ہوں۔ایسا کرنے کے لیے ()load_theme_text_domain نامی فنکشن کا استعمال کرنا چاہیے
Post Thumbnails
پوسٹ تھمب نیلز اور نمایاں تصاویر آپ کے صارفین کو اپنی پوسٹ کی نمائندگی کرنے کے لیے ایک تصویر منتخب کرنے کی اجازت دیتی ہیں۔آپ کی تھیم اپنے ڈیزائن کے لحاظ سے فیصلہ کر سکتی ہے کہ انہیں کیسے ڈسپلے کرنا ہے۔مثال کے طور پر، آپ archive view میں ہر پوسٹ کے ساتھ ایک پوسٹ تھمب نیل(post thumbnail) ڈسپلے کرنے کا انتخاب کر سکتے ہیں۔یا، آپ اپنے ہوم پیج پر ایک بڑی نمایاں تصویر استعمال کرنا چاہتے ہیں تو آپ featured image کے ایریا سے featured image کا انتخاب کرسکتے ہیں.یہ خصوصیت بلاک تھیمز (block themes)کے لیے خودبخود فعال ہو جاتی ہے، اور تھیم سیٹ اپ کے دوران اسے شامل کرنے کی ضرورت نہیں پڑتی ہے۔
;add_theme_support( ‘post-thumbnails’ )
Post Formats
پوسٹ فارمیٹس صارفین کو اپنی posts کومختلف طریقوں سے فارمیٹ کرنے کی اجازت دیتے ہیں۔یہ انتہائی مفید ہے کیونکہ یہ بلاگرز کو پوسٹ کے مواد کی بنیاد پر مختلف فارمیٹس اور ٹیمپلیٹس کا انتخاب کرنے کی اجازت دیتا ہے۔()add_theme_supportکو پوسٹ فارمیٹس کے لیے بھی استعمال کیا جاتا ہےاور اس پرچار کیا گیا ہے۔
بلاک تھیمز میں، درج ذیل تھیم سپورٹ خود بخود فعال ہو جاتی ہیں۔
Initial Setup Example
اگرمندرجہ بالا تمام خصوصیات کواکٹھا کیا جائے تو کچھ اس طرح کی functions.php فائل بنے گی۔ کوڈ کے تبصرےاس لیے شامل کیے گئے ہیں تاکہ مستقبل میں کوڈ کو سمجھنے میں آسانی رہے۔
جیسا کہ اس مثال میں نیچے دکھایا گیا ہے، آپ کو () add_action لازم شامل کرنا ہوگا۔تاکہ ()efaschool_setup فنکشن کے لوڈ ہونے کو یقینی بنایا جا سکے.
Content Width
کلاسک تھیمز میں، آپ کی functions.php فائل میں مواد کی چوڑائی شامل کی جاتی ہے تاکہ یہ یقینی بنایا جا سکے کہ کوئی بھی مواد یا اثاثہ سائٹ کے کنٹینر کو نہ توڑے۔مواد کی چوڑائی آپ کی سائٹ میں شامل کردہ کسی بھی مواد کے لیے زیادہ سے زیادہ اجازت شدہ چوڑائی کا تعین کرتی ہے۔بشمول اپ لوڈ کردہ تصاویر۔
ذیل کی مثال میں، content area کی زیادہ سے زیادہ چوڑائی 800 پکسلز ہے۔ کوئی بھی مواد اس سے بڑا نہیں ہوگا۔
تھیمز جن میں theme.json کنفیگریشن فائل شامل ہوتی ہے توان کی functions.php فائل میں متغیر (variable) شامل کرنے کی ضرورت نہیں ہوتی ہے۔اس کے بجائے، مواد کی چوڑائی theme.json فائل کی layout setting میں شامل کی گئی ہے۔آپ ایڈوانس سیکشن میں theme.json استعمال کرنے کے بارے میں مزید جان سکتے ہیں۔
Your functions.php File
اگر آپ اوپر دیے گئے تمام فنکشنز کوfunctions.php فائل میں شامل کرنے کا انتخاب کرتے ہیں، تو یہ کچھ اس طرح دیکھائی دے گی۔ اس پر اوپر کے حوالہ جات کے ساتھ تبصرہ کیا جا چکا ہے۔