পোস্টের ধরণের অ্যাড / এডিট থেকে নির্দিষ্ট স্ক্রিন বিকল্প এবং মেটা বক্সগুলি কীভাবে সরানো যায়?


10

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

ওয়ার্ডপ্রেস - স্ক্রিন অপশন - পোস্ট যুক্ত করুন বা সম্পাদনা করুন - মেটা বক্সগুলি পূর্ণ আকারের স্ক্রীনশটের জন্য এখানে ক্লিক করুন

প্রশ্ন আমি কীভাবে প্রোগ্রামের মাধ্যমে পোস্ট প্রকারগুলিতে সমস্ত নিবন্ধিত স্ক্রিন বিকল্পগুলির (মেটা বাক্স) তালিকা পেতে পারি, যেখানে আপনি আপনার পছন্দসই পোস্ট টাইপের মধ্যে কোনও নির্দিষ্ট পোস্ট যুক্ত করতে বা সম্পাদনা করতে চান।

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

উত্তর:


13

আপনার যা প্রয়োজন তা বৈশ্বিকভাবে $wp_meta_boxesসূচিকৃত get_current_screen()->id। স্ক্রীন বিকল্পগুলি অপসারণ করা মেটাবক্সগুলিও সরিয়ে ফেলবে যা আপনি 'in_admin_header'হুক ব্যবহার করে স্ক্রিন অপশন প্রদর্শিত হওয়ার ঠিক আগে করতে পারেন ।

সুতরাং আসুন ধরে নেওয়া যাক আপনি এই স্ক্রিনশটে যা দেখেন "ট্র্যাকব্যাকগুলি প্রেরণ করুন" স্ক্রিন বিকল্পটি থেকে মুক্তি পেতে চান :

আপনার থিমের functions.phpফাইলে বা আপনি যে প্লাগইন তৈরি করতে পারেন তার মধ্যে নিম্নলিখিত ক্লাসটি ফেলে দিন এবং কোডটি "ট্র্যাকব্যাকগুলি প্রেরণ করুন" স্ক্রিন বিকল্পটি সরিয়ে ফেলবে (এবং এটি সম্পর্কিত মেটাবক্স যা আপনি যা চেয়েছিলেন ঠিক তাই?):

class Michael_Ecklunds_Admin_Customizer {
  function __construct() {
    add_action( 'in_admin_header', array( $this, 'in_admin_header' ) );
  }
  function in_admin_header() {
    global $wp_meta_boxes;
    unset( $wp_meta_boxes[get_current_screen()->id]['normal']['core']['trackbacksdiv'] );
  }
}
new Michael_Ecklunds_Admin_Customizer();

এবং এখানে ওয়ার্ডপ্রেস 3.4 সাইটে উপরের কোডটি যুক্ত করার পরে দেখতে দেখতে এটি কী রকম দেখাচ্ছে:

এখানে পিএইচপিস্টোরমের মধ্যে জেন্ড ডিবাগারটি ব্যবহার করা তা পরিদর্শন করা $wp_meta_boxes[get_current_screen()->id]যাতে আপনি পোস্ট এডিট স্ক্রিনে ওয়ার্ডপ্রেস ৩.৪-এর একটি ডিফল্ট ইনস্টলেশনটির কী মূল্যবান তা দেখতে পারেন (আমি আমার উদাহরণে উল্লেখ করা অ্যারে সূচকগুলি বৃত্তাকার করেছি) $wp_meta_boxes[get_current_screen()->id]['normal']['core']['trackbacksdiv']:

আশা করি আপনি এটি কি খুঁজছিলেন?


3
স্বাভাবিকভাবেই সুন্দর! অভিনন্দন, একলুন্ড, আপনি কেবল একটি ক্যানোনিকাল উত্তরই পান নি, তবে কিংবদন্তিও পেয়েছেন ..!
brasofilo

প্রশংসনীয় ধন্যবাদ আমি সম্মানিত করছি.
মাইকস্কিঙ্কেল

@ মাইকচিন্কেল এটি কোনও পোস্ট যুক্ত / সম্পাদনা করে কাজ করে এবং এর জন্য আপনাকে ধন্যবাদ জানায়, তবে আপনি কীভাবে আপনার সমস্ত পোস্টের একটি তালিকা থাকা পৃষ্ঠার জন্য wp_list_table পৃষ্ঠার পর্দা বিকল্প মেটা বাক্সগুলি সরিয়ে ফেলবেন? স্ক্রীনশট # 1 দেখুন।
মাইকেল একলুন্ড

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

1
@ মিশেল একলন্ড কুল, ধন্যবাদ উত্তর দেওয়া হয়েছে: ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জাওয়েআআআ
6868৮৯6

0

দুঃখিত এটি কিছুটা পাশের ট্র্যাক কিন্তু আমি দেখেছি এটি কার্যকর যখন বাক্সের মেটা বাক্সগুলির বাইরে ডাব্লুপিপি অপসারণ করার বিষয়টি আসে তবে কাস্টম বা কাস্টম থিম সম্পর্কিত মেটা বাক্সগুলির জন্য এতটা নয়। আরও কিছুটা উদাহরণস্বরূপ: আমি একটি নতুন থিম ইনস্টল করেছি যা একটি কাস্টম মেটা বক্স চালু করেছে যখনই আপনি যখন কোনও পোস্ট / পৃষ্ঠা এটি পর্দার বিকল্পগুলিতে দেখায় তখনই এটি প্রযোজ্য। (আমি ডব্লিউপি তে নতুন) কোন কারণে মাইকের পন্থাটি ব্যবহার করে আমি এই কাস্টম মেটা বাক্সটি সরাতে পারিনি তবে এটি অ-কাস্টমহীন সমস্ত কিছুর জন্য কাজ করেছে। আমার বোকামির জন্য আমি ঘন্টার পর ঘন্টা দেয়ালে আঘাত করতে থাকি এখনও বুঝতে পারি না তাই আমাকে এই দিকে ফিরে যেতে হয়েছিল:

if (is_admin()) :
function my_remove_meta_boxes() 
{
  if(!current_user_can('administrator')) 
  {
    remove_meta_box('theme_custom_meta_box', 'post', 'side');
  }
}
add_action( 'add_meta_boxes', 'my_remove_meta_boxes' );
endif;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.