কোনও থিমের জন্য কাজ করে এমন কোনও গ্লোবাল ফাংশন.এফপি ফাইল আছে কি?


11

কোনও থিমের জন্য কাজ করে এমন কিছু বিশ্বব্যাপী ফাংশন.এফপি ফাইল রয়েছে কি?

সমস্যাটি এখানে:

আমি যখন কোনও থিমের একটি ফাংশন.এফপি ফাইল পরিবর্তন করি, তখন আমার দুটি পরিবর্তনের যত্ন নেওয়া দরকার: প্রথমত, আমাকে সেই থিমটির আপডেটগুলি যত্ন নেওয়া উচিত। দ্বিতীয়ত, সাইটের থিম পরিবর্তন করার বিষয়ে আমার যত্ন নেওয়া দরকার।

সুতরাং, কোনও থিমের ফাংশন.ফ্পে পরিবর্তনের পরিবর্তে, কোনও থিমের থেকে পৃথক কিছু ফাংশন.এফপি ফাইলগুলিতে পরিবর্তন করা কি সম্ভব?


4
অনুগ্রহ কি সত্যিই প্রয়োজনীয়? প্রশ্নটির ইতিমধ্যে ভাল উত্তর রয়েছে
onetrickpony

যেহেতু @ মোহিত বাম্ব একজন ছিলেন) অনুগ্রহ এবং খ) প্রথম যিনি প্লাগইন ব্যবহার করার পরামর্শ দিয়েছিলেন, আমি বলব যে তারই উচিত রেপ পয়েন্টগুলি (ফিরে) পাওয়া। আইএমও একটি খয়রাত প্রয়োজনীয় ছিল না (এবং আমি সে জানত না যে, তিনি আসলে দিতে ছিল দূরে )।
কায়সার

উত্তর:


15

থিম এবং নন-থিম কোডের মধ্যে পার্থক্যটি প্রযুক্তিগত নয় বরং সাংগঠনিক। সক্রিয় থাকা যে কোনও কোড ফলাফলের পরিবেশে অবদান রাখে, এটি কোথা থেকে লোড হয়েছে তা বিবেচনা করে না।

কোডগুলি লোড হয়ে যায় এমন অনেকগুলি জায়গা রয়েছে যা ওয়ার্ডপ্রেস কোরের অংশ নয়:

  • wp-config.php কনফিগারেশন ফাইল
  • সক্রিয় থিম (এবং শিশু থিমগুলির জন্য এর পিতামাতা)
  • সক্রিয় প্লাগইন
  • অবশ্যই প্লাগইন ব্যবহার করা উচিত
  • ড্রপ-ইনগুলি (এগুলি কিছুটা উন্নত এবং খুব নির্দিষ্ট উদ্দেশ্যে পরিবেশন করা হয়)

আপনার নিজস্ব কোডের জন্য সাধারণ জায়গা, এটি থিমের অংশ হওয়া উচিত নয়, এটি একটি প্লাগইন তৈরি করা। অন্যান্য পদ্ধতির জেনেরিক কেস থেকে কোনও উপকার নেই, তবে জালিয়াতি ইন্টারফেস (অ্যাডমিন অঞ্চল মাধ্যমে পরিচালনা করা) এবং প্রযুক্তিগত (অ্যাক্টিভেশন / নিষ্ক্রিয়করণ / আনইনস্টল ইভেন্টগুলি) সাধারণ প্লাগইনের সুবিধা রয়েছে।


আপনি এবং @ কেইজার উভয়কেই +1 করুন। আমি বিশ্বাস করি সঠিক উত্তরটি হল ১) কাস্টম কার্যকারিতাটি রাখতে একটি শিশু থিম তৈরি করুন functions.php, বা ২) সেই কার্যকারিতাটি বাড়ানোর জন্য একটি কাস্টম প্লাগিন তৈরি করুন, যাতে এটি বিভিন্ন থিমগুলির মধ্যে বহনযোগ্য।
চিপ বেনেট

@ যেহেতু প্রশ্ন থিমগুলি স্যুইচ করার সময় কোড সংরক্ষণের বিষয়ে প্রশ্ন জিজ্ঞাসা করে আমি চাইল্ড থিমটিকে ফিট হিসাবে দেখি না। আপনি যদি চাইল্ড থিম থিমটিতে যেতে চান? প্রদত্ত প্রয়োজনীয়তার জন্য প্লাগইন সবচেয়ে উপযুক্ত।
রাস্তার প্রথম

এজন্য আমি আপনাদের দুজনকেই ভোট দিয়েছি। :) কিন্তু, আপনি পারেন এখনও একটি শিশু থিম যখন থিমস সুইচিং ব্যবহার; Template:চাইল্ড থিমের মধ্যে উপযুক্তভাবে ট্যাগটি পরিবর্তন করুন style.css
চিপ বেনেট

@ চালনা আপনি আমার বক্তব্য পান না। আমি কি চাইল্ড থিম ব্যবহার করতে চাই? আমি আমার কোড দিয়ে টোয়েন্টি ইলেভেনের জন্য চাইল্ড থিম তৈরি করি। তারপরে আমি থিমটিতে স্যুইচ করতে চাই যা কুড়ি ইলেভেনের (বা অন্য পিতামাতার) চাইল্ড থিমও। দুটি শিশু থিম ম্যানুয়ালি মার্জ করা ব্যতীত আমার কোনও পথ নেই। তারপরে আমি থিমটি পরিবর্তন করব এরপরে আন-মার্জ করে। এটি একটি জগাখিচুড়ি.
21 ই

আমি এই জন্য অবশ্যই ব্যবহার করতে হবে। থিম জুড়ে ব্যবহারের জন্য উপলব্ধ ফাংশন,
হুকস এবং শর্টকডগুলি

6

ওয়েল এটি একটি আসল সমস্যা এবং অনেক লোকেরা যখন থিম পরিবর্তন করে তখন এটির মুখোমুখি হয় তবে একটি সহজ সমাধান রয়েছে।

সেই ফাংশনটি একটি নতুন পৃষ্ঠায় যুক্ত করুন ফাংশন নয়। পিএফপি এবং একে একটি অনন্য নাম দিন উদাহরণস্বরূপ yousitename + টাইমস্ট্যাম্প বা আপনি যা চান তবে একই নামের অনন্য তৈরি ফোল্ডারটি এটি জিপ করে এটি প্লাগইন হিসাবে আপলোড করুন যাতে আপনি এটি অক্ষম না করা পর্যন্ত এটি অবশ্যই কাজ করবে ।

কোন প্লাগইনটি সেই প্লাগইনটির নাম দিতে মিস করবেন না তার জন্য কোন প্লাগইন তা বুঝতে:

/*
Plugin Name: XYZ
*/

3

@ এমবিডাব্লু ডেভেলপার উত্তরটি যুক্ত করার জন্য।

অন্যান্য বিকল্পগুলি হ'ল:

  1. আপনার বর্তমান থিমের জন্য একটি চাইল্ড থিম তৈরি করুন এবং এটি থেকে ফাংশন.এফপি ফাইল ব্যবহার করুন (এটি "সেরা অনুশীলন")।
  2. includeআপনার থিম ফাংশন পিএইচপি ফাইল ব্যবহার করুন এবং আপনার কাস্টম কোড রয়েছে এমন একটি কাস্টম-ফাংশন.এফপি ফাইল লোড করুন।

2

থিমের ফাংশন.এফপি ফাইলে আপনার সাইটের নির্দিষ্ট পরিবর্তন করবেন না।

পরিবর্তে, একটি সাইট-নির্দিষ্ট প্লাগইন তৈরি করুন। আমি সাইটের ডোমেন নাম, "ottopress.com" এর মতো ব্যবহার করতে চাই। তারপরে আপনার স্নিপেটগুলি সেই প্লাগইনে রাখুন এবং কেবলমাত্র সেই সাইটে এটি সক্রিয় রাখুন।

বিকল্পভাবে, যখন আপনার সম্পর্কিত পরিবর্তনগুলির স্নিপেট থাকে, কেবল তাদের জন্য একটি নির্দিষ্ট প্লাগইন তৈরি করুন। এটি আপনাকে প্রয়োজনীয় কোডের বিটগুলি চালু / বন্ধ করার অপশন দেয়।


2

কিছু ব্যাখ্যা

প্রথমে আপনাকে একটি থিমের ফাংশন.এফপি এর উদ্দেশ্য বুঝতে হবে। ফাংশনস.এফপি মূলত কেবলমাত্র একটি প্লাগইন ফাইল যার নাম উপস্থিত থাকলে স্বয়ংক্রিয়ভাবে ওয়ার্ডপ্রেস দ্বারা লোড হয়। ওয়ার্ডপ্রেস ওয়ার্ডপ্রেস ফ্রন্ট-এন্ড পৃষ্ঠাগুলির পাশাপাশি ব্যাক-এন্ড (অ্যাডমিন) পৃষ্ঠাগুলির জন্য আপনার বর্তমান থিমের ফাংশন.এফপি লোড করে।

প্লাগইনগুলির নাম রয়েছে এবং প্লাগইন এবং থিম নির্বিশেষে সেগুলি সক্রিয় / ডি-অ্যাক্টিভেট করা যায় except Funtions.php আপনার বর্তমান থিমের সাথে সংযুক্ত থাকে এবং আপনি যদি অন্য থিমে স্যুইচ করেন তবে ওয়ার্ডপ্রেস নতুন থিমের ফাংশন.পিএপি ব্যবহার করে এবং কাস্টম পরিবর্তনগুলির সাথে আপনার পুরানো ফাংশন.ফ্প ব্যবহার করে না।

থিম আপডেটগুলিও ফাংশন.এফপি ওভাররাইট করে এবং এটি এড়ানোর কোনও উপায় নেই, এমনকি যদি আপনি নিজের কাস্টম পরিবর্তনগুলি পৃথক কোড ফাইলগুলিতে রাখেন এবং এটিকে আপনার fucntions.php এ অন্তর্ভুক্ত করেন তবে আপনাকে প্রতিটি আপডেটের পরে লাইন অন্তর্ভুক্ত করতে হবে।

সাধারণত কোডের ধরণ যা ফাংশন.এফপিতে হওয়া উচিত:

  • আপনার থিমের টেম্পলেট ফাইলগুলিতে ব্যবহৃত ফাংশন।
  • থিম অপশনগুলি
  • পার্শ্বদণ্ড
  • নেভিগেশন মেনু
  • পোস্ট ফর্ম্যাট
  • থাম্বনেইল পোস্ট করুন
  • যে কোনও কোড যা কেবলমাত্র বর্তমান থিমের সাথে সম্পর্কিত।

আপনি থিমগুলি স্যুইচ করলেও আপনার কাস্টম পরিবর্তনগুলি বজায় রাখতে চান। কারণ থিমটি স্যুইচ করবে এবং চাইল্ড থিমের ফাংশন.এফপি ব্যবহার করা হবে না বলে চাইল্ড থিম এই ক্ষেত্রে কাজ করবে না।

সমাধান

@ অটো দ্বারা প্রস্তাবিত একমাত্র সমাধান হ'ল প্লাগইন ফাইল তৈরি করা। আপনার সাইট নির্দিষ্ট প্লাগইন তৈরি করতে আপনি যে পদ্ধতির গ্রহণ করতে পারেন তা হ'ল 'ডাব্লুপি-কনটেন্ট / প্লাগইনস' এ আপনার সিনেটামের সাথে একটি ফোল্ডার তৈরি করা এবং এতে প্লাগইন ফাইল তৈরি করা।

প্লাগইন ফাইল কেন? এবং একক প্লাগইন ফাইল নয়।

পৃথক প্লাগইন ফাইলগুলিতে কোড সম্পর্কিত গ্রুপ সম্পর্কিত সাইটের কার্যকারিতা এবং আপনার সমস্ত প্লাগইন ফাইলগুলিতে প্লাগইন শিরোনাম যুক্ত করতে ভুলবেন না যাতে তারা ওয়ার্ডপ্রেস দ্বারা পৃথক প্লাগইন হিসাবে স্বীকৃত হয়। তারপরে আপনার সমস্ত কিছু না ভেঙে আপনার সাইটের বিভিন্ন বৈশিষ্ট্য / কার্যকারিতা সক্রিয় / নিষ্ক্রিয় করার ক্ষমতা থাকবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.