जवाबों:
यहां एक त्वरित और गंदा तरीका है जिसे आप चाहते हैं।
वर्डप्रेस एक वैश्विक सरणी में व्यवस्थापक मेनू अनुभागों को संग्रहीत करता है $menu
। किसी विभाजक को जोड़ने के लिए आप एक तत्व को $menu
एक अनुक्रमणिका का उपयोग करके जोड़ते हैं जो उन विकल्पों के अनुक्रमितों के बीच होता है जिन्हें आप अलग करना चाहते हैं।
add_admin_menu_separator()
फ़ंक्शन का उपयोग करनाइसलिए मैंने इसके लिए तर्क को एनकैप्सुलेट करने के लिए एक फंक्शन लिखा है 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/
(लेकिन FTP के साथ करना सुनिश्चित करें और थीम संपादक में बिल्ट न करें या आप अपनी साइट तक पहुंच ढीली कर देंगे, कम से कम तब तक जब तक कि आप अपने विषय की 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;
}
}
BTW, आपको सामान्य रूप से व्यवस्थापक मेनू के साथ काम करने के लिए ये लिंक उपयोगी मिल सकते हैं:
हालांकि मेरे व्यवस्थापक मेनू कक्षाएं वर्तमान में विभाजकों को जोड़ने का एक आसान तरीका प्रदान नहीं करती हैं, जो मुझे लगता है कि मैं अब वह जोड़ूंगा जब मेरे पास समय होगा।
यह आसान है:
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);
फ़ंक्शन के निचले भाग में जोड़कर समस्या को ठीक किया।
यह MastaBaba के उत्तर पर बनाता है, लेकिन आपके द्वारा निर्दिष्ट स्थिति में कुछ भी प्रतिस्थापित नहीं करता है - यह विभाजक को बाद में जोड़ता है।
एक अनाम फ़ंक्शन का भी उपयोग करता है इसलिए यह केवल PHP संस्करण 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;
}
});
यह निर्धारित करना थोड़ा कठिन है कि आप क्या करने की कोशिश कर रहे हैं, लेकिन मुझे लगता है कि आप WordPress व्यवस्थापक मेनू में एक शीर्ष-स्तरीय प्रविष्टि जोड़ना चाहते हैं।
इस कोड को वर्डप्रेस कोडेक्स में देखें ।
संक्षेप में, आप add_menu_page()
फ़ंक्शन के उपयोग की तलाश कर रहे हैं , जो कई तरह के तर्क लेता है और प्रशासनिक मेनू में "डैशबोर्ड", "पोस्ट", "मीडिया", आदि के भाई के रूप में एक अतिरिक्त आइटम प्रदर्शित करता है।
आशा है कि मैं सही हो गया। :-)
add_menu_page()
।
नीचे Wordpress के लिए एक कार्रवाई है जो व्यवस्थापक मेनू प्रदान किए जाने पर चलाया जाता है। व्यवस्थापक मेनू एक सरणी है और आप जो भी कर रहे हैं, यहां एक सरणी तत्व जोड़ रहे हैं जो एक विभाजक को परिभाषित करता है, आपके द्वारा निर्दिष्ट स्थिति में।
से यहाँ :
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'
);
}
ध्यान दें कि, हालांकि यह वर्तमान में स्वीकार किए गए उत्तर जैसा दिखता है, वर्तमान में स्वीकृत उत्तर मेरे लिए काम नहीं करता था (और, टिप्पणियों को देखते हुए, कई अन्य लोगों के लिए)।