মেনু_পজিশন ব্যবহার করে পোস্ট মেনুতে কাস্টম পোস্টের ধরণের মেনু রাখছেন?


17

আমি স্রেফ মেনু_ অবস্থানের প্যারামিটারটি বের করেছিলাম বলে মনে হচ্ছে আপনি নিজের কাস্টম পোস্ট টাইপের মেনুটি প্রায় সর্বত্রই রাখতে পারবেন। উপরে পোস্ট মেনু ছাড়া!

আমি কীভাবে এটি সম্পাদন করতে পারি?


ভাল প্রশ্ন, মনে হচ্ছে এটি সেই জায়গা যেখানে এটি যাবে না।
jnthnclrk

উত্তর:


14

কোর মেনু আইটেমের জন্য অবস্থানগুলি

  • 2 ড্যাশবোর্ড
  • 4 বিভাজক
  • 5 টি পোস্ট
  • 10 মিডিয়া
  • 15 লিঙ্ক
  • 20 পৃষ্ঠা
  • 25 মন্তব্য
  • 59 বিভাজক
  • 60 উপস্থিতি
  • 65 প্লাগইন
  • 70 জন ব্যবহারকারী
  • 75 টি সরঞ্জাম
  • 80 সেটিংস
  • 99 বিভাজক

"মেনু অবস্থান" এর জন্য প্যারামিটারের বিবরণ

$position( পূর্ণসংখ্যা ) ( al চ্ছিক ) মেনুতে অবস্থানটি এই মেনুতে প্রদর্শিত হওয়া উচিত। ডিফল্টরূপে, যদি এই পরামিতি বাদ দেওয়া হয়, মেনুটি মেনু কাঠামোর নীচে উপস্থিত হবে। সংখ্যাটি যত বেশি, মেনুতে এর অবস্থানটি তত কম।

সতর্কতা: দুটি মেনু আইটেম যদি একই অবস্থানের বৈশিষ্ট্যটি ব্যবহার করে তবে আইটেমগুলির মধ্যে একটিতে ওভাররাইট করা যেতে পারে যাতে কেবল একটি আইটেম প্রদর্শিত হয়! পূর্ণসংখ্যার মানগুলির পরিবর্তে দশমিক ব্যবহার করে সংঘাতের ঝুঁকি হ্রাস করা যায়, যেমন 63 63 এর পরিবর্তে .3৩.৩

ডিফল্ট: মেনু কাঠামোর নীচে


4

নতুন জেটপ্যাক প্লাগইনটি ডেনবোর্ডের লিঙ্কের ঠিক পরে এর মেনু লিঙ্কটি রাখে। এটি তাই করে তার মেনু অর্ডার 0 এ সেট করে, $ মেনু_অর্ডার অ্যারে ফিল্টার করে এটি করে :

function jetpack_menu_order( $menu_order ) {
        $jp_menu_order = array();

        foreach ( $menu_order as $index => $item ) {
            if ( $item != 'jetpack' )
                $jp_menu_order[] = $item;

            if ( $index == 0 )
                $jp_menu_order[] = 'jetpack';
        }

        return $jp_menu_order;
    }

কৌতূহলের বাইরে, আপনি 0 টি মেনু_পজিশন হিসাবে চেষ্টা করলে কী হবে?


2

আমি 'মেনু_পোশন' => 0, 1,2,3,4 ব্যবহার করেছি।

আসলেই কিছু যায় আসে না। আপনি যদি এটির সাথে চারপাশে খেলেন তবে আপনি সহজেই এটি বের করতে পারেন।

'মেনু_পজিশন' => 1 ব্যবহার করে এটি পৃথককারী জিনিসের উপরে ড্যাশবোর্ড মেনু আইটেমের নীচে স্থাপন করা উচিত। 0 এটি ড্যাশবোর্ডের উপরে স্থাপন করা উচিত


2

ওয়েবে সমাধান খুঁজছেন কিন্তু খুঁজে পেলেন না। কেবল এই কৌশলটি (উদাহরণস্বরূপ) করে। এখানে আপনার অবস্থানের স্থানীয় তালিকা রয়েছে:

  • 2 ড্যাশবোর্ড
  • 4 বিভাজক
  • 5 টি পোস্ট
  • 10 মিডিয়া
  • 15 লিঙ্ক
  • 20 পৃষ্ঠা
  • 25 মন্তব্য
  • 59 বিভাজক
  • 60 উপস্থিতি
  • 65 প্লাগইন
  • 70 জন ব্যবহারকারী
  • 75 টি সরঞ্জাম
  • 80 সেটিংস
  • 99 বিভাজক

আপনার যদি আরও আইটেম থাকে তবে আপনি গ্লোবাল $ মেনুটি মুদ্রণ করে প্রতিটি আইটেমের বর্তমান অবস্থানটি পড়তে পারেন:

global $menu; 
print_r($menu); 

সুতরাং আমি যদি ভালভাবে বুঝতে পারি তবে কিছুই আমাদের পক্ষে মেনুটিকে পুনরায় অর্ডার করতে বাধা দিতে পারে না:

function re_order_menu () {
    // ------- Put away items 
    $dashboard = $menu[2]
    $separator1 = $menu[4]
    $posts = $menu[5]
    $media = $menu[10]
    $links = $menu[15]
    $pages = $menu[20]
    $comments = $menu[25]
    $separator2 = $menu[59]
    $appearance = $menu[60]
    $plugins = $menu[65]
    $users = $menu[70]
    $tools = $menu[75]
    $settings = $menu[80]
    $separator3 = $menu[99]

    // -------- Reset menu  
    unset($menu[2]);
    unset($menu[4]);
    unset($menu[5]);
    unset($menu[10]);
    unset($menu[15]);
    unset($menu[20]);
    unset($menu[25]);
    unset($menu[59]);
    unset($menu[60]);
    unset($menu[65]);
    unset($menu[70]);
    unset($menu[75]);
    unset($menu[80]);
    unset($menu[99]);

    // -------- Re-order menu as you want
    $dashboard = $menu[2];
    $separator1 = $menu[4]
    $posts = $menu[5];
    $books = $menu[6];
    /* my tons of custom items */
    $authors  = $menu[7];
    $requests = $menu[8];
    $clients = $menu[9];
    $sellers  = $menu[10];
    $services = $menu[11];
    $schedules = $menu[12];
    /* let some space after */ 
    $media = $menu[30];
    $links = $menu[31];
    $pages = $menu[32];
    $comments = $menu[33];
    $separator2 = $menu[59];
    $appearance = $menu[60];
    $plugins = $menu[65];
    $users = $menu[70];
    $tools = $menu[75];
    $settings = $menu[80]
    $separator3 = $menu[99];

} 
add_action('admin_menu', 're_order_menu');

এটি আমার পক্ষে ঠিক কাজ করে, আমি মনে করি এটি বৈধ, আমি ভুল?


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


1

আপনি এটি ব্যবহার করতে পারেন:

function my_move_post () {
    global $menu;
    $menu[6] = $menu[5]; //move post from post 5 to 6
    unset($menu[5]); //free the position 5 so you can use it!
}
add_action('admin_menu', 'my_move_post');

পোস্টের মেনুর উপরে আপনাকে মেনু যুক্ত করতে এখন আপনি অবস্থান 5 ব্যবহার করতে পারেন।


এটি আমার পক্ষে কার্যকর হয়নি। আমি এটি আমার সাইটওয়াইড প্লাগইনটিতে রেখেছি যেখানে আমার কাস্টম-পোস্ট-টাইপ.এফপি ফাইলটি রয়েছে
ড্যানিয়েল

1

এখানে পুরো ইস্যুতে সতর্কতা ...

ওয়ার্ডপ্রেস ৪.৯.২

WP-অ্যাডমিন / menu.php:

// If we're to use $_wp_last_object_menu, increment it first.
$ptype_menu_position = is_int( $ptype_obj->menu_position ) ? $ptype_obj->menu_position : ++$_wp_last_object_menu; 

বিজ্ঞপ্তি: অবশ্যই একটি পূর্ণসংখ্যার হতে হবে এবং এটি ইতিমধ্যে সেট করা নেই, অন্যথায় এটি তালিকার নীচে যায়।


1

ওয়ার্ডপ্রেস 5 এবং এর নীচে কাজের সমাধানের জন্য, নিম্নলিখিত কোডের সাথে এটি প্রতিস্থাপন করুন:

add_filter('custom_menu_order', '__return_true');
add_filter('menu_order', function($menu_order) {
    if (
        false !== ($k1 = array_search($v1 = 'edit.php', $menu_order))
        && false !== ($k2 = array_search($v2 = 'edit.php?post_type=foo', $menu_order))
    ) {
        array_splice($menu_order, $k1, 0, $v2);
        array_splice($menu_order, $k2 + 1, 1);
    }
    return $menu_order;
});

এটি ধরে নেয় আপনার পোলের অবস্থানের জন্য একাধিক মেনু আইটেম নেই v


0

আপনি যে লিঙ্কটি সংযুক্ত করেছেন, একই লিঙ্কে এটি পড়ে:

menu_position
(integer) (optional) The position in the menu order the post type should appear.
Default: null - defaults to below Comments
5 - below Posts
10 - below Media
20 - below Pages
60 - below first separator
100 - below second separator

সুতরাং, আপনি যদি menu_positionএমন কোনও কিছু সেট করে থাকেন 4তবে তা পোস্টের উপরে রাখা উচিত।

একটি অবস্থান -1এটিকে Dashboardলিঙ্কের উপরে রাখে ।


4 চেষ্টা করেছিল কিন্তু এটা ঠিক একই 5. যেমন
janoChen

এইচআরএম। ২-৩ চেষ্টা করে? আমি মনে করি সম্ভবত "1" (বা "0") ড্যাশবোর্ড। সম্ভবত 2-3 কোনও কাজ করবে
জ্যাক

0 1 2 3 ড্যাশবোর্ডের আগে যায় এবং 4 টি পোস্টের নীচে যায়। সত্যিই অসম্ভব!
জানোচেন

কি দারুন. অনেকটা ওয়ার্ডপ্রেস ভেঙে গেছে? আমি তখন জানি না। : - /
জ্যাক

আমি মনে করি 4 টি পোস্টের ঠিক উপরে বিভাজক এবং 5 টি পোস্ট, সুতরাং আপনি যদি আপনার মেনু-অবস্থানটি 3 এ সেট করেন তবে এটি বিভাজকের ঠিক আগে হবে। অবশ্যই ডিফল্ট কনফিগারেশন। আমার প্লাগইন পৃষ্ঠাটি 4 এ সেট করা বিভাজককে ওভাররোট করে তবে পোস্টের ঠিক উপরে উঠে আসে। Hmmm ...
goldenapples

0

আপনি দশমিক মান (স্ট্রিং হিসাবে) ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আমার কিছু কাস্টম পোস্ট টাইপ রয়েছে যা আমি মেনুতে শেষ অবস্থানে রেখেছি (100001, 100002, 100003)।

তারপরে, পোস্টের উপরে এবং ড্যাশবোর্ড মেনু আইটেমগুলির নীচে তাদের সরানোর জন্য কেবল এই কোডটি দিন ।

function reorder_admin_menu() {

  global $menu;

  // Add one separator

  $menu["3.1"] = array(
    0 =>  '',
    1 =>  'read',
    2 =>  'separator_' . "anything_unique",
    3 =>  '',
    4 =>  'wp-menu-separator'
    );

  // I have put my menu items waay at the end (exactly these values), so move them up

  $menu["3.2"] = $menu[100001];
  $menu["3.3"] = $menu[100002];
  $menu["3.4"] = $menu[100003];

  unset($menu[100001]);
  unset($menu[100002]);
  unset($menu[100003]);

  // move Media menu (position 10) item to front, in the same group
  $menu["3.5"] = $menu[10];
  unset($menu[10]);

  // Debug: ksort($menu); error_log( var_export( $menu, true ) );
}

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