আমার কোডটি কোথায় রাখবেন: প্লাগইন বা ফাংশন.এফপি?


86

সেখানে একটা Is সহজ বুঝতে স্কিম কোড কি ধরনের একটি প্লাগইন বা থিমের জন্যে সিদ্ধান্ত নিতে functions.php?

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

এটি কীভাবে এই পয়েন্টগুলি পরিচালনা করবে (এবং সম্ভবত আরও কিছু):

  • কাস্টম পোস্টের ধরণ এবং করশোনাগুলি
  • যোগাযোগ ফর্ম
  • শর্টকাট
  • কাস্টম উইজেট
  • add_theme_support( 'automatic-feed-links' );
  • কাস্টম metaউপাদানগুলির মতো এসইও ফাংশন
  • থিম সুইচ

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

আমাদের মেটা সাইটে চিপ বেনেট সম্পর্কিত সম্পর্কিত প্রশ্নটিও দেখুন: বিশেষত "প্লাগইন ছাড়াই" সমাধানের জন্য জিজ্ঞাসা করা প্রশ্নগুলি

সম্পর্কিত: আমি কোডটি স্নিপেটগুলি এখানে বা ওয়েবে অন্য কোথাও রেখেছি?


আমি অবাক হয়েছি যে এই প্রশ্নের উদ্দেশ্যগুলির জন্য কি সত্যগুলি গঠন করবে। ব্যক্তি এ সিপিটি প্লাগইনে যান বলে জানায়, ব্যক্তি বি বলেছেন সিপিটি থিমে যায়। কোনও মতামতকে বৈধতা দেওয়ার জন্য আমরা কীভাবে কোনও তথ্য সংগ্রহ করতে পারি? এটি বিপজ্জনকভাবে "গঠনমূলক নয়" এর কাছাকাছি হতে পারে।
রর্স্ট

উত্তর:


72

আমি এই প্রশ্নটি দিয়ে শুরু করব: কার্যকারিতাটি বিষয়বস্তুর উপস্থাপনের সাথে , বা সামগ্রীর প্রজন্ম / পরিচালনার সাথে, বা সাইটের, বা ব্যবহারকারীর পরিচয়ের সাথে সম্পর্কিত?

কার্যকারিতা যদি বিশেষভাবে সামগ্রী উপস্থাপনের সাথে সম্পর্কিত না হয় , তবে এটি প্লাগিন টেরিটরির মধ্যে চৌকসভাবে হয়। এই তালিকাটি দীর্ঘ:

  • কোর ডাব্লুপি ফিল্টারগুলি সংশোধন করা হচ্ছে ( wp_headবিষয়বস্তু, যেমন ক্যানোনিকাল লিঙ্ক, জেনারেটর এবং অন্যান্য এইচটিএমএল মেটা ইত্যাদি)
  • সাইট ফ্যাভিকন
  • পোস্ট-সামগ্রী শর্টকোড
  • ভাগ করে নেওয়ার লিঙ্কগুলি
  • গুগল অ্যানালিটিক্স (এবং অনুরূপ) ফুটার স্ক্রিপ্ট ts
  • এসইও সরঞ্জাম / নিয়ন্ত্রণ
  • প্রভৃতি

কার্যকারিতা যদি বিষয়বস্তুর উপস্থাপনের সাথে সম্পর্কিত হয় তবে থিমের অন্তর্ভুক্ত হওয়ার জন্য এটি প্রার্থী । এই মুহুর্তে, আমি @ Raf912 এর থিম-স্যুইচ মানদণ্ডে ফিরে যাব : আপনি থিমগুলি স্যুইচ করার সময় কার্যকারিতাটি মিস করবেন? যে প্রশ্নের উত্তর হয়, তাহলে কোন , তারপর কার্যকারিতা থিম মধ্যে জন্যে। কিছু উদাহরণ:

  • ডাব্লুপি কোর গ্যালারী সিএসএস সরানো / ওভাররাইড করা
  • ফিল্টারিং পোস্ট অংশের দৈর্ঘ্য, "আরও পড়ুন" পাঠ্য ইত্যাদি
  • এর মাধ্যমে যে কোনও কিছুই বাস্তবায়ন করা হয়েছে add_theme_support()(আমি মনে করি এটি অবশ্যই সুস্পষ্ট হওয়া উচিত)
  • কাস্টম সিএসএস

সাধারণত, এই দুটি প্রশ্ন পৃথকীকরণের মোটামুটি পরিষ্কার লাইন সরবরাহ করবে; তবে, ব্যতিক্রম আছে।

কাস্টম পোস্ট প্রকার

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

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

সামাজিক মিডিয়া লিংক

একইভাবে, আমি সাধারণত বলব যে সোশ্যাল মিডিয়া প্রোফাইল লিঙ্কগুলি, বর্তমান থিমগুলিতে সমস্ত কিন্তু সর্বব্যাপী হয়ে ওঠে, এটি প্লাগইন টেরিটরি, কারণ তাদের বিষয়বস্তুর উপস্থাপনের সাথে কিছুই করার নেই । এই প্রোফাইলগুলির মূল কোথাও সংজ্ঞায়িত করার জন্য সেরা সমাধানটি হবে; তবে বর্তমানে এই লিঙ্কগুলি সংজ্ঞায়নের কোনও মানক / sensকমত্যের উপায় নেই। সেগুলি সাইট-সেটিং স্তরে বা প্রতি-ব্যবহারকারী ভিত্তিতে সর্বোত্তম-সংজ্ঞায়িত? যদি প্রতি ব্যবহারকারী, কোন ব্যবহারকারীর মেটা টেমপ্লেটে প্রকাশিত হয়? প্রভৃতি

সুতরাং, দীর্ঘমেয়াদে, এই বৈষম্যের সমাধান হ'ল এই লিঙ্কগুলি যেখানে সংজ্ঞায়িত হয়েছে সেটিকে নির্ধারণ করার জন্য কোর বা অন্যথায় থিম বিকাশকারী সম্প্রদায়ের নিজস্ব developক্যমত্য বিকাশের জন্য। ইতিমধ্যে, প্রতিটি থিমের মধ্যে সেগুলি সংজ্ঞায়িত করা ছাড়া এর পক্ষে আসলে কিছুই নেই।


add_theme_support( 'automatic-feed-links' );উপস্থাপনযোগ্য নয়। তবে এটি থিমের নির্দেশিকা দ্বারা প্রয়োজনীয় । থিম স্যুইচের পরে এই কার্যকারিতাটি looseিলা করা কেন প্রয়োজনীয় ঝুঁকি?
ফুসিয়া

1
এর মাধ্যমে কার্যকর করা যে কোনও কিছুই add_theme_support()কেবল থিমের মাধ্যমে প্রয়োগ করা যেতে পারে। add_theme_support( 'automatic-feed-links' )থিমের মধ্যে ব্যবহার করা আসলে থিম থেকে থিম পর্যন্ত একটি সামঞ্জস্যপূর্ণ অভিজ্ঞতা নিশ্চিত করে , যেহেতু উত্পন্ন ফিডের লিঙ্কগুলি একই হবে।
চিপ বেনেট

4
আমি মনে করি এটির নাম দেওয়া হয়েছে: ফিড লিঙ্কগুলি উপস্থাপনযোগ্য নয়। যদি পরবর্তী থিম সেই ফাংশনটিকে কল না করে তবে ব্যবহারকারী ফিডের লিঙ্কগুলি হারাবেন। এবং আপনি যে কোনও সমস্যা ছাড়াই এটি প্রতি প্লাগইন যুক্ত করতে পারেন। এ কারণেই আমি এ নিয়ে বিভ্রান্ত। :)
ফুসিয়া

1
আপনি জানেন: এটি একটি ভাল পয়েন্ট। :)
চিপ বেনেট

50

একটি সহজ পরীক্ষা যেখানে কোডটি সর্বোত্তমভাবে স্থাপন করা হয়েছে:

  • ফাংশন.এফপি-তে কোড লিখুন
  • থিম পরিবর্তন করুন
  • আপনি কি কার্যকারিতাটি মিস করেছেন, ব্লগটি কি সঠিকভাবে কাজ করছে না বা পুরানো থিমের টুকরা (যেমন শর্টকোডগুলি) বাকি আছে?

    • হ্যাঁ: এটি একটি প্লাগইনে রাখুন

    • না: এটি ফাংশন.এফপিতে রেখে দিন

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

শেষ মন্তব্যগুলি তালিকাভুক্ত করতে একটি ফাংশন লিখুন। থিমটি স্যুইচ করার পরে, সবকিছু ঠিক আছে কারণ সম্ভবত অন্যান্য থিমের সমতুল্য ফাংশন রয়েছে।

এটি কোড এবং এটি কী করবে তার উপর নির্ভর করে। কিছু কোড কেবল থিমের স্টাইলিং বা সামগ্রীকে প্রভাবিত করে, আবার কেউ কেউ ব্লগ পোস্টগুলিকে সংশোধন করবে।


11
+1 কোডটি থিমের সাথে নির্দিষ্ট থাকলে এটি রেখে দিন functions.php। যদি এটি একাধিক থিমের জন্য প্রয়োগ করতে হয় তবে এটি একটি প্লাগইনে রাখুন।
s_ha_dum

18

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

  • এই কোডটি কি ওয়ার্ডপ্রেসের একক-সাইট ইনস্টলেশনতে হোস্ট করা হবে?
    • হ্যাঁ - সাইটের থিমটি কি কেবলমাত্র প্রধান পুনরায় নকশাগুলি এবং কার্যকারিতা পরিবর্তন করে?
      • হ্যাঁ - প্রশ্নের মধ্যে কোডটি কি এই বর্তমান ডিজাইনের সাথে নির্দিষ্ট ?
        • হ্যাঁ: ফাংশন.এফপি
        • না: প্লাগইন
      • না (এটি প্রায়শই বা তীব্রভাবে পরিবর্তিত হয়) - প্লাগইন
    • না (মাল্টসাইটাইট) - আপনি মাল্টিসাইট ইনস্টলটি হোস্ট করছেন বা এটি কোনও হোস্ট করা মাল্টিসাইট সমাধান যা প্লাগইনগুলিকে অনুমতি দেয়?
      • হ্যাঁ: প্রশ্নে কার্যকারিতাটি কি এই সাইটের জন্য নির্দিষ্ট , বা / নেটওয়ার্কের অন্য সাইটগুলি ব্যবহার করা উচিত?
        • এই সাইটের জন্য নির্দিষ্ট: ফাংশন.এফপি
        • একাধিক সাইটের মধ্যে ভাগ করা - আপনি কি প্রতিটি সাইটে এটি জোর করতে চান?
          • হ্যাঁ: প্লাগইন, মু-প্লাগইন ডিরেক্টরিতে সঞ্চয় করা বা নেটওয়ার্ক-সক্রিয়
          • না: এটি কি কোনও সম্পর্কযুক্ত সাইটের নেটওয়ার্ক ? (যেমন বিভিন্ন ক্লায়েন্ট)
            • হ্যাঁ: ক্লায়েন্ট এ, ক্লায়েন্ট বি, সি, এবং ডি এর জন্য আপনি যে প্লাগইনটি লিখেছেন তা দেখে বা সক্রিয় করে ফেললে এটি খারাপ বা অ পেশাদারি হবে? (উদাঃ সম্ভবত এটি সাইটটি ভেঙে ফেলবে বা অনাকাঙ্ক্ষিত কার্যকারিতা তৈরি করবে)
              • হ্যাঁ: ফাংশন.এফপি
              • না: প্লাগইন
            • না: সম্ভবত প্লাগইন
      • না (ভিআইপি এর মতো কোনও পরিষেবা হোস্ট করে যা প্লাগইনগুলিতে অনুমতি দেয় না): فنکشن.এফপি ব্যবহার করুন
কিছু অন্যান্য চিন্তা যা আমি এখানে ফিট করতে জানি না:

  • অভিভাবক থিম - কখনও কখনও ভাগ করা কার্যকারিতা সহ পিতামাতাকে থিম তৈরি করা এবং কার্যকারীতা পিতামাতার থিমের ফাংশন.এফপি ফাইলে রাখা ভাল।
  • বড় বড় মাল্টিসাইট ইনস্টলগুলির প্লাগইন ডিরেক্টরিগুলি দ্রুত অনিয়ন্ত্রিত হয়ে উঠতে পারে, তাই কখনও কখনও ভাগের কার্যকারিতা কম শতাংশ সাইটের দ্বারা ব্যবহৃত হয় (যেমন <1%) ফাংশন.এফপি ফাইলগুলিতে নকল করা ভাল।

6

এখান থেকে থিম ভিএস প্লাগইনস

চাইল্ড থিমটিতে কাস্টম কোড যুক্ত করুন সুতরাং আপনি যখন পিতামাতার থিমটি আপডেট করেন তখন আপনার কাস্টম কোডটি হারাবে না।

আপনি একটি সাইট নির্দিষ্ট প্লাগইন তৈরি করতে পারেন যা আপনার সমস্ত কাস্টম কোডও ধারণ করে।

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

 function modify_contact_methods($profile_fields) {

// Add new fields
$profile_fields['twitter'] = 'Twitter Username';
$profile_fields['facebook'] = 'Facebook URL';
$profile_fields['gplus'] = 'Google+ URL';

return $profile_fields;
}
add_filter('user_contactmethods', 'modify_contact_methods');

http://codex.wordpress.org/Plugin_API/Filter_Reference/user_contactmethods

  1. নতুন কাস্টম পোস্ট প্রকার যুক্ত করুন - কোড
  2. ব্যবহারকারীদের উপর নতুন ক্ষেত্র যুক্ত করুন - উপরে কোড
  3. নতুন উইজেট যুক্ত করুন - কোড
  4. কাস্টম পারমালিঙ্কস যুক্ত করুন - ওয়ার্ডপ্রেস পারমিলিংক সেটিংস

5

আমি জানি এটি একটি মৃত ঘোড়া এবং চিপ এটির বেশিরভাগ অংশ hasেকে রেখেছে, তবে কয়েকটি চিন্তা যুক্ত করতে চেয়েছিল।

আপনি যদি কোনও লাইভ প্রোগ্রামিং করেন এবং সময়সীমার আওতায় ওয়ার্ডপ্রেস সাইটগুলিতে নিজেকে কাজ করতে দেখেন তবে আপনি খুঁজে পেতে যাচ্ছেন যে এটি আসলে সময়ে নিচে আসে।

প্রায়শই না করা, বিশেষত যাঁরা কেবল শুরু করেন তাদের পক্ষে, আপনার থিমের মধ্যে যা যা প্রয়োজন কেবল যুক্ত করা এবং এটি সম্পন্ন করা কল করা খুব দ্রুত এবং সহজ।

বলা হচ্ছে, আপনি যদি অর্ধ নিয়মিত ওয়ার্ডপ্রেসে কাজ করেন তবে আপনার নিম্নলিখিত বিষয়গুলি গুরুত্ব সহকারে বিবেচনা করা উচিত :


  1. একটি প্লাগইন কঙ্কাল তৈরি করুন

এটি আপনার অ্যাক্টিভেশন, নিষ্ক্রিয়করণ, সংস্করণ আপডেট করা, অ্যাডমিন প্যানেল নির্মাণ এবং আনইনস্টল করা সহ একটি প্লাগইন সহ সাধারণত যা করার প্রয়োজন তা হ্যান্ডেল করা উচিত।

আপনি যদি এটি করার জন্য সময় তৈরি করেন তবে আপনি পাবেন:

  • প্লাগিনগুলির মাধ্যমে কার্যকারিতা যুক্ত করতে এখন আর অতিরিক্ত অতিরিক্ত সময় লাগে না
  • প্রয়োজন মতো অন্যান্য প্রকল্পগুলিতে পুনরায় ব্যবহার করতে আপনি প্লাগইনগুলির একটি শক্তিশালী তালিকা তৈরি করতে শুরু করতে পারেন, দীর্ঘমেয়াদে নিজেকে অনেক সময় সাশ্রয় করুন।
  • আপনি অতিরিক্ত দৃশ্যমানতা চাইলে এগুলি সর্বজনীনভাবে উপলভ্য করতে পারেন

আপনি এখন জিনিসগুলি সঠিকভাবে তৈরি করতে এবং ভবিষ্যতের প্রকল্পগুলি আরও দ্রুত সম্পন্ন করতে পারেন।


  1. থিমের কঙ্কাল তৈরি করুন

এটি একটি থিমে সাধারণত প্রয়োজন সমস্ত কিছু পরিচালনা করা উচিত:

  • একটি সাধারণ স্টাইল শীট যা আপনি সাধারণত ব্যবহার করেন এমন স্টাইলগুলি (পুনরায় সেট করা ইত্যাদি) ব্যবহার করে containing
  • একটি উপযুক্ত সূচি.পিএফপি ফাইল, যে কোনও টেম্পলেটগুলির জন্য আপনার প্রয়োজনীয় সমস্ত কিছুই হ্যান্ডলিং করছে
  • একটি ফাংশন.এফপি ফাইল - আপনি এটি প্রায় ততটা ব্যবহার করবেন না তবে এটি এখনও কার্যকর হবে।

এটি হয়ে গেলে, আপনার প্রাথমিক থিমটি ব্যবহার করে এমন একটি চাইল্ড থিম কঙ্কাল তৈরি করুন।

  • আপনার পিতামাতার থিম উল্লেখ করে স্টাইলশিট যুক্ত করুন।
  • ফাংশন.এফপি ফাইল যুক্ত করুন

একবার আপনি এই দুটি জিনিস শেষ হয়ে গেলে লোকদের জন্য নতুন সাইট তৈরি করা আরও দ্রুত হয়ে যায়।


আপনি যদি উপরের কাজটি করে থাকেন তবে আপনি নিম্নলিখিতটি নিয়ে কাজ করতে পারেন:

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

এবং, আপনি যদি উপরের সমস্ত কিছু করেন তবে আপনি দেখতে পাবেন যে চিপের উত্তরটি কেবল আদর্শই নয়, এটি সর্বোত্তম হয়ে উঠবে।


3

সহজ উত্তরটি হ'ল ..

কোডটি কোনও নির্দিষ্ট থিমের মধ্যে নির্মিত কোনও কার্যকারিতার উপর নির্ভর করে? যদি হ্যাঁ, তবে একটি থিম রাখুন।

আপনি কি চান যে এই কোডটি সাইটের মধ্যে এবং থিমগুলির মধ্যে স্থানান্তরযোগ্য হবে? যদি হ্যাঁ, তবে একটি প্লাগইন রাখুন।

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

এছাড়াও, যদি আপনি চাইল্ড থিম ব্যবহার না করেন এবং আপনি থিমটি আপডেট করার পরিকল্পনা করেন তবে আমি আপনাকে একটি প্লাগইন ব্যবহার করার পরামর্শ দিচ্ছি।

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