উত্তর:
আপনি যা চান তা পাওয়ার জন্য এখানে দ্রুত এবং নোংরা উপায়।
ওয়ার্ডপ্রেস বলে বিশ্বব্যাপী অ্যারেতে অ্যাডমিন মেনু বিভাগগুলি $menu
। একটি বিভাজক যুক্ত $menu
করতে আপনি আলাদা করতে চান এমন বিকল্পগুলির সূচীগুলির মধ্যে থাকা একটি সূচি ব্যবহার করে অ্যারেতে একটি উপাদান যুক্ত করুন।
add_admin_menu_separator()
ফাংশন ব্যবহার করেসুতরাং আমি এই জন্য কল যুক্তি encapsulate একটি ফাংশন লিখেছি add_admin_menu_separator()
। আপনাকে একটি অ্যারের সূচক নম্বর বাছাই করতে হবে যা বিকল্পের পরে আপনি একটি বিভাজক যুক্ত করতে চান, এবং তারপরে ক্রিয়াকলাপটি add_admin_menu_separator()
বলা সূচকটিকে আপনার প্যারামিটার হিসাবে কল করুন ।
উদাহরণ স্বরূপ:
add_admin_menu_separator(37);
add_admin_menu_separator()
ফাংশন নিজেইফাংশনের সংজ্ঞাটি এখানে দেওয়া হয়েছে add_admin_menu_separator()
যা আপনি আপনার থিমের functions.php
ফাইলটিতে অনুলিপি করতে পারেন । হ্যাঁ এটি আরকেন তবে তারপরে কোডটি যা বিশ্বব্যাপী $menu
অ্যারে তৈরি করে এবং ব্যবহার করে । (পরিকল্পনাগুলি অবশেষে এটিকে অবমূল্যায়ন করবে, ধন্যবাদ, তবে সম্ভবত এটি কয়েক বছর হবে))
function add_admin_menu_separator($position) {
global $menu;
$index = 0;
foreach($menu as $offset => $section) {
if (substr($section[2],0,9)=='separator')
$index++;
if ($offset>=$position) {
$menu[$position] = array('','read',"separator{$index}",'','wp-menu-separator');
break;
}
}
ksort( $menu );
}
$menu
আপনার প্রয়োজনীয় সূচকটি সন্ধান করাজিনিসটা আপনি একটি কি করতে পারেন হবে তা সূচক সংখ্যা var_dump()
এর $GLOBALS['menu']
একটি মধ্য থেকে admin_init
হুক। functions.php
মানগুলির কি তা দেখতে আপনি সাময়িকভাবে আপনার থিমের ফাইলটিতে ফেলে দিতে পারেন এই কোডটির একটি বিট । এটি কেবল তখনই URL এর সাথে অনুরোধ করার সময় কাজ করবে /wp-admin/
(তবে এফটিপি সহ এটি করার বিষয়ে নিশ্চিত হন এবং থিম সম্পাদক হিসাবে অন্তর্নির্মিত নয় বা আপনার থিমের functions.php
ফাইলে এফটিপি অ্যাক্সেস না পাওয়া পর্যন্ত আপনি আপনার সাইটে অ্যাক্সেস ছেড়ে দেবেন !) :
add_action('admin_init','dump_admin_menu');
function dump_admin_menu() {
if (is_admin()) {
header('Content-Type:text/plain');
var_dump($GLOBALS['menu']);
exit;
}
}
বিটিডাব্লু, আপনি অ্যাডমিন মেনুগুলির সাথে কাজ করার জন্য এই লিঙ্কগুলি সাধারণভাবে দরকারী দেখতে পাবেন:
যদিও আমার অ্যাডমিন মেনু ক্লাসগুলি বর্তমানে বিভাজনকারীদের যুক্ত করার কোনও সহজ উপায় সরবরাহ করে না বলে আমার মনে হয় আমি সময় পেলেই এটি যুক্ত করব।
এটি এত সহজ:
add_action( 'admin_init', 'add_sep' );
function add_sep() {
if ( ! is_admin() )
return false;
global $menu;
$sep = $menu[4]; // that's the default separator
$pos = 6; // change it for the desired position
$menu = array_merge(
array_slice( $menu, 0, $pos ),
array( $sep ),
array_slice( $menu, $pos + 1, -1)
);
$menu[ $pos - 1 ][4] .= ' menu-top-last';
$menu[ $pos + 1 ][4] .= ' menu-top-first';
}
দ্রষ্টব্য: $menu[4]
এই হুকের আগে আপনি (বা আপনার প্লাগইনগুলি) কোন কনফিগারেশন করেছেন তার উপর নির্ভর করে ডিফল্ট বিভাজক অবস্থান ( ) আলাদা হতে পারে।
অবশ্যই, আপনি menu-top-first
এবং menu-top-last
ক্লাসের অন্তর্নিবেশকেও টুইট করতে পারেন ।
বিভাজকদের যুক্ত না করা নিয়ে কিছু সমস্যা ছিল, এটি ওয়ার্ডপ্রেসের ডুপ্লিকেট বিভাজকগুলি সরানোর উপায়ের কারণেই হয়েছিল। ksort($menu);
ফাংশনের নীচে যুক্ত করা বিষয়টিকে সংশোধন করেছে।
এটি মাস্তাবাবার উত্তরের উপর ভিত্তি করে, তবে আপনি যে অবস্থানটি নির্দিষ্ট করেছেন তাতে কোনও কিছুই প্রতিস্থাপন করে না - এটি কেবল পরে বিভাজক যুক্ত করে।
একটি বেনামি ফাংশনও ব্যবহার করে তাই এটি কেবলমাত্র পিএইচপি সংস্করণ 5.3 এবং তার উপরের সাথে উপযুক্ত।
add_action( 'admin_menu', function () {
$position = 29;
global $menu;
$separator = [
0 => '',
1 => 'read',
2 => 'separator' . $position,
3 => '',
4 => 'wp-menu-separator'
];
if (isset($menu[$position])) {
$menu = array_splice($menu, $position, 0, $separator);
} else {
$menu[$position] = $separator;
}
});
আপনি যা করার চেষ্টা করছেন তা নির্ধারণ করা কিছুটা কঠিন, তবে আমি মনে করি আপনি ওয়ার্ডপ্রেস অ্যাডমিন মেনুতে একটি শীর্ষ-স্তরের এন্ট্রি যুক্ত করতে চাইছেন।
ওয়ার্ডপ্রেস কোডেক্সে এই ডকুমেন্টেশনটি দেখুন ।
সংক্ষেপে, আপনি add_menu_page()
ফাংশনটির ব্যবহার সন্ধান করছেন , যা বেশ কয়েকটি যুক্তি গ্রহণ করে এবং প্রশাসনিক মেনুতে "ড্যাশবোর্ড", "পোস্টস", "মিডিয়া" ইত্যাদির ভাইবোন হিসাবে একটি অতিরিক্ত আইটেম প্রদর্শন করে
আশা করি আমি ঠিক পেয়েছি। :-)
add_menu_page()
।
নীচে অ্যাডমিন মেনুটি রেন্ডার করার পরে চালিত ওয়ার্ডপ্রেসে একটি ক্রিয়া বিজ্ঞাপন দেয়। অ্যাডমিন মেনুটি একটি অ্যারে এবং আপনি যা করছেন এখানে, আপনি যে অবস্থানটি নির্দিষ্ট করেছেন সেখানে একটি অ্যারে উপাদান যুক্ত করছে যা একটি বিভাজককে সংজ্ঞায়িত করে।
থেকে এখানে :
add_action( 'admin_menu', 'set_admin_menu_separator' );
function set_admin_menu_separator() {
$position = 79;
global $menu;
$menu[$position] = array(
0 => '',
1 => 'read',
2 => 'separator' . $position,
3 => '',
4 => 'wp-menu-separator'
);
}
নোট করুন, যদিও এটি বর্তমানে গৃহীত উত্তরের সাথে সাদৃশ্যযুক্ত, বর্তমানে গৃহীত উত্তরগুলি আমার পক্ষে কার্যকর হয়নি (এবং মন্তব্যগুলি থেকে বিচার করার জন্য, বেশ কয়েকটি অন্যান্য)।