কীভাবে পুরো অ্যাডমিন মেনু অপসারণ করবেন?


14

আমার ব্যবহারকারীর জন্য আমাকে অ্যাডমিন প্যানেলটি কাস্টমাইজ করতে হবে। তাহলে আমি কীভাবে পুরো অ্যাডমিন মেনুটি সরিয়ে ফেলব? মেনু আইটেমটি অপসারণ করবেন না, আমি সম্পূর্ণরূপে বাম উল্লম্ব মেনু বারটি সরিয়ে ফেলব, মেনুটির নকশা অন্তর্ভুক্ত করুন (যেমন, সিএসএস, ব্যাকগ্রাউন্ড.. ইত্যাদি)। আমি এটি ফাঁকা হতে চাই

আমি এটি সিএস হ্যাক করে করতে পারি। তবে আমি এটি করতে হুক ব্যবহার করতে পছন্দ করি। কোন ধারনা?

ধন্যবাদ


আমি কৌতুহলী. আপনার ব্যবহারকারীদের যদি কোনও অ্যাডমিন মেনু আইটেমের অ্যাক্সেসের প্রয়োজন না হয় তবে কেন তাদের ড্যাশবোর্ডে মোটেই অ্যাক্সেসের প্রয়োজন নেই?
মোড়ালেইদ

উদ্দেশ্যগুলি নিয়ে ভাবছেন ... আপনি কি নির্দিষ্ট ভূমিকা / ব্যবহারকারীদের জন্য এটি আড়াল করতে চান? আপনি কি কাস্টম অ্যাডমিন বার মেনু তৈরি করছেন (শীর্ষে)?
brasofilo

1
হ্যাঁ, আমি অ্যাডমিন মেনুটি কাস্টমাইজ করতে চাই। বর্তমান অ্যাডমিন মেনুটি যথেষ্ট ভাল নয়, এটি খুব 'ওয়ার্ডপ্রেস' অনুভূতি। আমার মতে ব্র্যান্ডিংয়ের পক্ষে ভাল নয়।
দেব-জিম

এখানে আমার পূর্ববর্তী উত্তর পরীক্ষা করুন; ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জাওয়েজ.কমেসশনস
১৩60০৫৮/২

উত্তর:


16

সঠিক হুকটি ব্যবহার করা হবে admin_menuএবং তারপরে আপনি মুছে ফেলতে চান মেনুগুলি সরিয়ে ফাংশন তৈরি করুন। নিম্নলিখিত 2 টি কার্য সমস্ত মেনু অপসারণ করে।

add_action( 'admin_menu', 'remove_admin_menus' );
add_action( 'admin_menu', 'remove_admin_submenus' );

//Remove top level admin menus
function remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
    remove_menu_page( 'link-manager.php' );
    remove_menu_page( 'tools.php' );
    remove_menu_page( 'plugins.php' );
    remove_menu_page( 'users.php' );
    remove_menu_page( 'options-general.php' );
    remove_menu_page( 'upload.php' );
    remove_menu_page( 'edit.php' );
    remove_menu_page( 'edit.php?post_type=page' );
    remove_menu_page( 'themes.php' );
}


//Remove sub level admin menus
function remove_admin_submenus() {
    remove_submenu_page( 'themes.php', 'theme-editor.php' );
    remove_submenu_page( 'themes.php', 'themes.php' );
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );
    remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
    remove_submenu_page( 'edit.php', 'post-new.php' );
    remove_submenu_page( 'themes.php', 'nav-menus.php' );
    remove_submenu_page( 'themes.php', 'widgets.php' );
    remove_submenu_page( 'themes.php', 'theme-editor.php' );
    remove_submenu_page( 'plugins.php', 'plugin-editor.php' );
    remove_submenu_page( 'plugins.php', 'plugin-install.php' );
    remove_submenu_page( 'users.php', 'users.php' );
    remove_submenu_page( 'users.php', 'user-new.php' );
    remove_submenu_page( 'upload.php', 'media-new.php' );
    remove_submenu_page( 'options-general.php', 'options-writing.php' );
    remove_submenu_page( 'options-general.php', 'options-discussion.php' );
    remove_submenu_page( 'options-general.php', 'options-reading.php' );
    remove_submenu_page( 'options-general.php', 'options-discussion.php' );
    remove_submenu_page( 'options-general.php', 'options-media.php' );
    remove_submenu_page( 'options-general.php', 'options-privacy.php' );
    remove_submenu_page( 'options-general.php', 'options-permalinks.php' );
    remove_submenu_page( 'index.php', 'update-core.php' );
}

উপরের 2 টি ফাংশন ব্যবহার করে বাম মেনুর স্ক্রিনশট:

এখানে চিত্র বর্ণনা লিখুন


3
আমি ব্যবহার করে অন্য উপায় খুঁজে পেয়েছি $GLOBALS['menu'] = array();। অ্যারেতে নাল দেওয়াও কাজটি করবে।
দেব-জিম

তুমি কোথায় রেখেছ?

কেউ কি স্ক্রিন শট সাম্প্রতিক খসড়া লক্ষ্য? ;)
ACSlater

5

/wp-admin/admin-header.php-> /wp-admin/menu-header.phpএর নেতৃত্ব অনুসরণ করে এটি করার কোনও হুক নেই।

একটি সমাধান হ'ল admin_headএবং কিছু সিএসএস + জিকুয়েরি করা

add_action('admin_head', 'wpse_52099_script_enqueuer');
function wpse_52099_script_enqueuer(){
    if(!current_user_can('administrator')) {
        echo <<<HTML
        <style type="text/css">
        #wpcontent, #footer { margin-left: 0px; }
        </style>
        <script type="text/javascript">
        jQuery(document).ready( function($) {
            $('#adminmenuback, #adminmenuwrap').remove();
        });     
        </script>
HTML;
    }
}

[আপডেট]
প্রশ্নের স্পষ্টতা অনুসারে, যেখানে এটি স্পষ্ট হয়ে যায় যে অনুপ্রেরণা অ্যাডমিন অঞ্চলে ব্র্যান্ডিং করছে, সেগুলি আমি এর জন্য ব্যবহার করি এমন 4 টি প্লাগইন রয়েছে:


আপনি যদি এই রুটে যান তবে হুক wp_enqueue_script()দিয়ে ব্যবহার করা আরও বোধগম্য admin_enqueue_script
mrwweb

1
@ এমআরউওয়েব এমনকি যখন এটি এত ছোট সন্নিবেশ হয়? আপনি কি যোগ্য বলে মনে করেন?
brasofilo

একমত। ছোট স্ক্রিপ্ট / স্টাইল সন্নিবেশ আরও সহজেই সম্পন্ন হয় admin_head
chrisguitarguy

আমার কাছে অন্য কোনও পছন্দ না থাকলে আমি jquery ব্যবহার পছন্দ করি না। দর্শক যদি তাদের ব্রাউজারে জাভাস্ক্রিপ্ট অক্ষম করে? যদিও, এটি হওয়ার সম্ভাবনা নেই, তবে সেখানে সম্ভাবনা রয়েছে। যাই হোক, পরামর্শের জন্য ধন্যবাদ.
দেব-জিম

আমার উদাহরণে, এটি CSS এ 2 ডিভগুলিও লুকিয়ে রেখে ডাবল অপসারণের বিষয় হবে।
brasofilo

2

আমি জানি একমাত্র হুক-বান্ধব উপায় হ'ল remove_menu_page()প্রতিটি মেনু আইটেমের জন্য ব্যবহার । তারপরেও, আমি জানি না যে বাম বারটিতে নিজেই কী ঘটে (এটি 0 পিক্স প্রস্থে নেমে যাবে বা কী)। এমনকি হুকগুলি ব্যবহার করেও, আমি কল্পনা করেছি যে আপনি কোনও মেনু মার্কআপ শৈলীর অবশিষ্টাংশগুলি সাফ করার জন্য কোনও প্রশাসক স্টাইলশিট সজ্জিত করতে চান।

আমি এই কাজ সম্পর্কে যত্নশীল হবে। উদাহরণস্বরূপ, আপনি যদি "সেটিংস" মুছে ফেলেন তবে "সেটিংস" মেনুতে মেনু পৃষ্ঠা তৈরি করা কোনও প্লাগইন পৌঁছানো যাবে না। সাধারণভাবে, আমি আশ্চর্য হই যে মেনুটিকে সম্পূর্ণভাবে সরিয়ে ফেলা সত্যিই কতটা টেকসই।


আমি নিশ্চিত যে তিনি নিয়মিত ব্যবহারকারীদের জন্য মেনু অপসারণের কোনও উপায় খুঁজছিলেন, প্রশাসকদের নয়। :)
ক্রিস্টিন কুপার

1
add_action( 'admin_menu', 'remove_admin_menus' );

function remove_admin_menus(){
    global $menu;
    $menu = array();
}

এই উত্তর খুব সহজ। এটি সংক্ষিপ্ত এবং প্লাগইনগুলির দ্বারা তৈরি মেনু পৃষ্ঠাগুলি ব্যতীত কবজির মতো কাজ করে। (যা কোনও সমস্যা হওয়া উচিত নয় কারণ এগুলি কেবল প্রশাসকের জন্য দৃশ্যমান)
চার্লস

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

0

আমি @ ব্রাসোফিলোর সমাধানটি উন্নত করি কারণ এটিতে ছোট বাগ রয়েছে - সেরা পুনরায় লোডে সেরা ইন্টারনেট সংযোগ মেনু খুব অল্প সময়ের জন্য উপস্থিত হবে। এড়াতে আমি আরও কিছুটা CSS যুক্ত করেছি:

add_action('admin_head', 'wpse_52099_script_enqueuer');

function wpse_52099_script_enqueuer() {

    if(!current_user_can('administrator')) { 

echo <<<HTML
<style type="text/css">
#wpcontent, #footer { margin-left: 0px !important; }
#adminmenuback, #adminmenuwrap { display: none !important; }
</style>
<script type="text/javascript">
jQuery(document).ready( function($) {
    $('#adminmenuback, #adminmenuwrap').remove();
});
</script>
HTML;

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