শীর্ষ স্তরের মেনু আইটেমটির কীভাবে লিঙ্ক নেই, তবে এতে সাব মেনু রয়েছে যা লিঙ্কযুক্ত রয়েছে?


25

আমি একটি অনুভূমিক মেনু তৈরি করছি এবং সেই মেনুতে কিছু এন্ট্রি ড্রপডাউন (সাব-মেনু) থাকবে এবং কিছু থাকবে না। যাদের সাব-মেনু রয়েছে তারা আসলে পৃষ্ঠা নয়। এগুলি কেবল ড্রপডাউনগুলির জন্য গাইড হিসাবে বোঝানো হচ্ছে।

উদাহরণস্বরূপ, অনুভূমিক মেনুটি নীচের মতো বলে:

হোম | আমাদের সম্পর্কে | পণ্য | দিকনির্দেশ | যোগাযোগ

এবং "পণ্য" লি আইটেমটি বোঝায় যে এর নীচে উল্লম্ব ড্রপডাউন তালিকার সাথে 3 পৃষ্ঠাগুলি লিঙ্ক করা আছে, সুতরাং "পণ্যগুলি" নিজেই কোনও পৃষ্ঠার প্রতিনিধিত্ব করে না, আমি কীভাবে ডাব্লুপিপিতে এটি করতে পারি?

(আমি স্ট্যাটিক হোম এবং অভ্যন্তরীণ পৃষ্ঠাগুলি সহ ডাব্লুপিটিকে সিএমএস হিসাবে ব্যবহার করি I আমি আমার নিজস্ব টেম্পলেট তৈরি করি, সিএসএসে মেনুগুলি স্টাইল করি, তারপরে ফাংশন.ফেপগুলিতে মেনুগুলি নিবন্ধভুক্ত করি এবং টেম্পলেটগুলিতে কল করি)) ডাব্লুপিতে আপনি এন্ট্রি যুক্ত করেন পৃষ্ঠাগুলির তালিকার মাধ্যমে বা কাস্টম লিঙ্কগুলির মাধ্যমে মেনুগুলি। তবে আমি চাই না যে "পণ্যগুলি" সংযুক্ত হোক। আমি যদি কাস্টম লিঙ্কটিতে কোনও লিঙ্ক যুক্ত না করি তবে এটি আমাকে মেনুতে যুক্ত করতে দেয় না।

এটি কি মেনু অ্যাডমিনের মাধ্যমে করণীয় বা আমাকে অন্য কোনও উপায়ে যেতে হবে?

কোন সাহায্যের জন্য আপনাকে ধন্যবাদ!


1

আপনি জেএস ব্যবহার করে এটি করতে পারেন। এই নিবন্ধ চেষ্টা করুন। kvcodes.com/2014/07/…
Kvvaradha

ইউআরএল বাক্সে, এটি ফাঁকা ছেড়ে দিন।
AMY ওয়াং

WP_NAV_MENU_WALKER ক্লাসের কথা কেউ উল্লেখ করেনি, আপনি নিজের ওয়াকার লিখতে পারেন যা আপনার ইচ্ছার বাইরে যায়।
ব্যবহারকারী 3135691

উত্তর:


12

আমি কয়েক ধারনা আছে:

  1. কাস্টম লিঙ্কটি সেট করুন #যা কোনও কিছুই ফেরায় না
  2. আইটেমগুলিতে একটি কাস্টম ক্লাস যুক্ত করুন এবং তারপরে লিঙ্কগুলি সরাতে jQuery ব্যবহার করুন।
  3. JQuery পদ্ধতির সমতুল্য একটি পিএইচপি ব্যবহার করুন
  4. অক্ষম পিতা মেনু লিংক প্লাগইনটি ব্যবহার করুন (বা এটিকে আলাদা করে রাখুন এবং আপনার নিজের লিখুন)

টিপস এবং লিঙ্কগুলির জন্য আপনাকে ধন্যবাদ! গ্যাভিন পরামর্শ হিসাবে, একটি কাস্টম লিঙ্ক "কাজ করে" এর জন্য একটি # ব্যবহার করে; অন্যান্য বিকল্পগুলি আরও ভাল কাজ করতে পারে, যদিও এটি সহজ নয়। ঠিক আছে, প্লাগইন সম্ভবত সহজ তবে আমি যদি একই জিনিসটি আরও সরাসরি সম্পাদন করতে পারি তবে প্লাগিনগুলি ব্যবহার করতে আমি ঘৃণা করি। আমি সেরা পদ্ধতির সিদ্ধান্ত নিতে হবে। আবার ধন্যবাদ!
পিভিএ

যদি আপনি এটি স্পর্শকাতর ডিভাইসে ব্যবহার করার পরিকল্পনা করেন, খালি ব্যবহারের ক্ষেত্রে সতর্ক থাকুন href=""কারণ বেশিরভাগ স্পর্শকাতর ডিভাইস ব্যবহারকারীরা জেএস ব্যবহার না করে ড্রপডাউন মেনু দেখতে পাবেন না
সাইমন

লিঙ্কগুলি বিরতি। আপনি নিজের উত্তরে এই ধারণাগুলির কয়েকটি নিয়ে কাজ করতে চাইতে পারেন
shea

এছাড়াও, # 2 এবং # 3 উল্লেখ করে wp_list_pages(), নাwp_nav_menu()
শেয়া

25

প্লাগইন বা কিছু না করে এটি করার সহজ উপায় হ'ল ওয়ার্ডপ্রেসের "মেনু" ফাংশনটি ব্যবহার করা। ওয়ার্ডপ্রেস 4.8 এর জন্য এখানে নির্দেশাবলী দেওয়া হয়েছে:

  1. আপনার ওয়ার্ডপ্রেস ড্যাশবোর্ড থেকে "উপস্থিতি -> মেনু" এ যান
  2. "সম্পাদনা মেনু" ট্যাবে, "কাস্টম লিঙ্কগুলি" নির্বাচন করুন
  3. ইউআরএলটির জন্য, "#" প্রবেশ করুন (কোনও উদ্ধৃতি নেই)
  4. লিঙ্ক পাঠ্যের জন্য, আপনার ড্রপ-ডাউন মেনুটির শীর্ষ স্তরের জন্য আপনার পছন্দসই পাঠ্যটি প্রবেশ করান
  5. "মেনুতে যুক্ত করুন" বোতামটি ক্লিক করুন
  6. আপনার মেনুর মধ্যে মেনু আইটেমটিকে তার পছন্দসই অবস্থানে টেনে আনুন
  7. আপনি স্রেফ যুক্ত করা মেনু আইটেমটির জন্য, আইটেমের ডানদিকে নীচে তীরটি ক্লিক করুন (এটি আইটেমটির বামে "কাস্টম লিঙ্ক" পড়বে)
  8. URL থেকে "#" সরান। এটি - সমস্ত ব্রাউজারে - লিঙ্কটি সরল পাঠ্যে রূপান্তরিত করে।
  9. "সেভ মেনু" বোতামে ক্লিক করুন

এই টিপটির জন্য আপনাকে ধন্যবাদ। এটি ইজ, যদিও আপনি মাউসওভার করার সময় লেবেলগুলি "লিঙ্কগুলি" মতো দেখায় তেমন নিখুঁত না হলেও এগুলি কোথাও যায় না। সুতরাং এটি একটি চিমটি মধ্যে কাজ করতে পারেন।
পিভিএ

1
পুরো মন্তব্যটি পড়েছেন? লিঙ্কটি যুক্ত হওয়ার পরে, লিঙ্কটির নাম দিয়ে ড্রপডাউন তীরটি ক্লিক করুন এবং URL পাঠ্যবক্স থেকে "#" সরান। এটি, সমস্ত ব্রাউজারে, লিঙ্কটি ক্লিকযোগ্য না হওয়ার কারণ ঘটবে।
গ্যাভিনআর

1
হ্যাঁ, আপনাকে ধন্যবাদ, আমি পুরো মন্তব্যটি পড়েছি। আমি এর মধ্যে দিয়ে গিয়ে আবার চেষ্টা করেছিলাম এবং আমার সমস্যাটি উপলব্ধি করেছি। আমি # টি ছেড়ে গেলে শব্দটি নাবারটিতে প্রদর্শিত হয় তবে একটি "মৃত লিঙ্ক" হিসাবে। আমি # টি সরিয়ে ফেললে আমি শব্দটি নাবারটিতে না দেখি যতক্ষণ না আমি এটির উপরে নজর রাখি এবং এটি একটি হোভার অবস্থায় প্রদর্শিত হবে। সুতরাং আমি ধরে নিই এর মানে হল যে আমাকে শব্দের সাথে সিএসএস প্রয়োগ করতে হবে যাতে এটি লিঙ্কযুক্ত না হয়ে উপস্থিত হয়। আমি নিশ্চিত না কেন কেন হোভার রাজ্যটি প্রদর্শিত হবে ...
পিভিএ

এটি এখনও ৪.৯.৫-এ রয়েছে, তবে আমি নিশ্চিত নই যে এটি কোনও বাগের হ্যাক হ্যাক করার মতো 'অনুভূতি' বলে মনে হয়। যদি তা না হয় .. এটি মানুষকে প্রচুর মাথা ব্যথা বাঁচাতে চলেছে ... এই ধরণের মতো ওয়ার্ডপ্রেস "1 2 3 4 5 6" কে শক্তিশালী পাসওয়ার্ড হিসাবে বিবেচনা করে ... এখনও।
ব্রুকলিনস্বেব 22'18

এফওয়াইআই, আপনি যদি ৮ ম ধাপটি করেন (যে কোনও ভাল কারণেই) তবে আপনি কাস্টম লিঙ্কটি ঘুরে দেখলে আপনার কার্সারটি কোনও পয়েন্টার হতে পারে না। সেক্ষেত্রে আপনি এটি পয়েন্টার: কার্সার দিয়ে স্টাইল করতে পারেন।
মার্সএন্ডব্যাক

7

আমি যে সহজ পদ্ধতিটি নিয়ে এসেছি তা হ'ল এর লিঙ্ক URL মান সহ একটি কাস্টম লিঙ্ক আইটেম তৈরি করা #। এটি ব্যবহারকারীকে একই পৃষ্ঠায় একটি খালি হ্যাশ প্রেরণ করছে, তাই মূলত কোথাও লিঙ্ক।

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

মুলুতে খালি হ্যাশ লিঙ্কগুলি কখন ব্যবহৃত হয় তা সনাক্ত করার জন্য এবং hrefসেই লিঙ্কটি থেকে সম্পূর্ণরূপে বৈশিষ্ট্যটি সরিয়ে ফেলার সমাধানটি হ'ল খালি হ্যাশ পদ্ধতির কোডের একটি অংশের সাথে একত্রিত করা। একটি aএকটি ছাড়া উপাদান hrefঅ্যাট্রিবিউট সঠিক এইচটিএমএল 5 পদ্ধতি একটি স্থানধারক লিঙ্ক তৈরি করুন।

/**
 * Remove the href from empty links `<a href="#">` in the nav menus
 * @param string $menu the current menu HTML
 * @return string the modified menu HTML
 */
add_filter( 'wp_nav_menu_items', function ( $menu ) {
    return str_replace( '<a href="#"', '<a', $menu );
} );

2

এটি আমার পক্ষে কাজ করেছে:

আমি মেনুতে> স্ক্রিন অপশন> সিএসএস ক্লাসে সিএসএস ক্লাসগুলি সক্রিয় করেছি তারপরে আমি মেনু উপাদানটি দিয়েছিলাম যে আমি ".nolink" ক্লাসটি নিষ্ক্রিয় করতে চেয়েছি এবং কোডের এই টুকরোটি আমার কাস্টম সিএসএস প্যানেলে যুক্ত করেছি:

.nolink {
   pointer-events: none;
   cursor: default;
}

এটি ড্রপডাউনকেও হত্যা করে।
user385917

#লিঙ্ক টার্গেট হিসাবে ব্যবহার করা এবং তারপরে স্টাইলিংয়ের উদ্দেশ্যে কাস্টম সিএসএস ক্লাস প্রয়োগ করা আমার মতে সর্বনিম্ন হ্যাকি সমাধান। যাইহোক, সেটিংস pointer-events: noneআমার পক্ষে খুব একটা বোঝায় না, যেহেতু এটি সাব মেনুগুলি ভেঙে দেবে। আপনি কেন এই বৈশিষ্ট্যটি সেট করলেন তা বিশদভাবে বলতে পারেন?
ব্যবহারকারী 1438038

1

পিএইচপি পদ্ধতির ব্যবহার করে আমি এই কোডটি ফাংশন.এফপিতে যুক্ত করেছি:

function remove_link_contact_menu($item_output, $item) {
    if ($item->post_name == 'contact')
        return '<span>' . $item->title . '</span>';

    return $item_output;
}
add_filter('walker_nav_menu_start_el', 'remove_link_contact_menu', 20, 2);
add_filter('megamenu_walker_nav_menu_start_el', 'remove_link_contact_menu', 20, 2);

এটি পোস্ট_নাম == "পরিচিতি" দিয়ে আইটেম মেনুর জন্য একটি স্প্যান উপাদানটির সাথে লিঙ্কটি প্রতিস্থাপন করবে, যা আমি খুঁজছিলাম। আপনি মেনু শিরোনাম বা আইডি চেক করতে সহজেই তা পরিবর্তন করতে পারেন, বা এতে কোনও শিশু মেনু আইটেম রয়েছে কিনা তা পরীক্ষা করার জন্য কিছু কোড যুক্ত করতে পারেন


0

আমি এইভাবে সমাধান করেছি: Header.php এ (আপনার থিমের) আমি অনুসন্ধান করেছি:

'link_before'     => '',
'link_after'      => '',

এবং এর সাথে প্রতিস্থাপন:

'link_before'     => '<script>var scriptTag=document.getElementsByTagName("script");scriptTag=scriptTag[scriptTag.length-1];if(scriptTag.parentNode.href)if(scriptTag.parentNode.href.slice(-1)=="#")document.write("<span onclick=\"return false\">")</script>',
'link_after'      => '<script>var scriptTag=document.getElementsByTagName("script");scriptTag=scriptTag[scriptTag.length-1];if(scriptTag.parentNode.href)if(scriptTag.parentNode.href.slice(-1)=="#")document.write("</span>")</script>',

সহজ কথায়, এই স্ক্রিপ্টটি পরীক্ষা করে যদি এটির পিতামাত লিংক "#" দিয়ে শেষ হয় তবে এই ক্ষেত্রে এটি ট্যাগের সামগ্রীর চারপাশে একটি স্প্যান উপাদান যুক্ত করে, যা ক্লিকটি অক্ষম করে।

আশা করি এটা সাহায্য করবে :-)


হাই, আমি জানি এটি একটি পুরানো উত্তর তবে ভবিষ্যতের রেফারেন্সের জন্য, আমি কেবল আপনার থিমের শিরোনামের ফাইলটি changeুকতে এবং পরিবর্তন করব না কারণ যখন এটি পরবর্তী আপডেট হবে তখন আপনার সমস্ত কোড ওভাররাইট করা হবে। এর সর্বোত্তম সমাধানটি হ'ল আপনার কাস্টম কোড সহ চাইল্ড থিম তৈরি করা।
স্কট

0

অন্যরা যেমন এখানে পরামর্শ দিয়েছে আপনি # টির সাথে এর URL হিসাবে একটি কাস্টম লিঙ্ক মেনু আইটেম তৈরি করতে পারেন। তারপরে # টি একবার মুছে ফেললে এটি মেনুতে যুক্ত হয়। এবং পরিশেষে, আপনি এই লিঙ্কগুলি থেকে প্রকৃত ট্যাগটি ফেলা করতে এই সাধারণ রেজেেক্সটি ব্যবহার করতে পারেন।

preg_replace('/<a>([^<]+)<\/a>/i', '<span class="no-link">$1</span>', $navHTML);

0

এটি ক্লিক (এবং আইটেমটি আনস্টাইল) সরিয়ে ফেলবে। এইভাবে, আপনাকে আপনার মেনুতে কাস্টম # লিঙ্কগুলি ব্যবহার করতে হবে না।

add_action( 'wp_footer', function(){
    ?>
    <script>
    (function( $ ) {
        var itemm = $('#main-menu .menu-item-has-children > a');
        itemm.click(function(){
            document.activeElement && document.activeElement.blur();
            return false;
        });
    })(jQuery);
    </script>
<?php
 }, 1, 0 );

0

এটি একটি পুরানো থ্রেডের প্রশংসা করুন, তবে ওয়ার্ডপ্রেসে কোনও লিঙ্ক থাকার দ্রুত এবং নোংরা উপায়ের জন্য লিঙ্কটি ইউআরএল তৈরি করে দেওয়া:

#_

হ্যাশট্যাগের পরে আন্ডারস্কোরটি লক্ষ্য করুন। এইভাবে যদি আপনার মেনু পৃষ্ঠাটি স্ক্রল করে (যেমন স্থির), আপনি পৃষ্ঠায় ক্লিক করার সময় পৃষ্ঠার শীর্ষে একটি লাফ পাবেন না এবং কোনও প্লাগইন / স্ক্রিপ্টের প্রয়োজন নেই।


0

আমি বুঝতে পেরেছি যে আমি দেরিতে এসেছি, তবে এই দুটি পদ্ধতিই আমি ব্যবহার করি:

1) পিতামাতার মেনু আইটেমটিকে প্রথম উপ-আইটেমটির একটি সদৃশ করুন এবং এর লেবেল পরিবর্তন করুন। উদাহরণস্বরূপ, যদি "পণ্যসমূহ" এর অধীনে প্রথম আইটেমটি "পণ্য 1" হয় তবে "পণ্য 1" কে প্যারেন্ট মেনু আইটেম হিসাবে ব্যবহার করুন, তারপরে তার পণ্যগুলি "পণ্যগুলিতে" পরিবর্তন করুন। এইভাবে, "পণ্য" এবং "পণ্য 1" উভয়ই পৃষ্ঠা 1 পৃষ্ঠায় নিয়ে যাবে।

২) একটি পুনর্নির্দেশ যুক্ত করুন যাতে পণ্য পৃষ্ঠা পৃষ্ঠাতে পুনঃনির্দেশিত হয় this এই বিকল্পের সুবিধাটি হ'ল এটি আপনাকে পৃষ্ঠাগুলিতে একটি শ্রেণিবদ্ধ তালিকা তৈরি করতে একটি ফাঁকা পণ্য পৃষ্ঠা তৈরি করতে দেয়, তবে যদি কেউ ফাঁকা পণ্যগুলিতে যাওয়ার চেষ্টা করে পৃষ্ঠা, সেগুলি পুনঃনির্দেশিত করা হবে।


0

উপস্থিতিতে যান, তারপরে মেনুতে ক্লিক করুন। এই বিভাগে মেনু কাঠামোর অধীনে যান এবং পৃষ্ঠাটি প্রসারিত করতে নীচে তীরটিতে ক্লিক করুন এবং আপনি এমন একটি বাক্স দেখতে পাবেন যা লিঙ্কটি অক্ষম করে বলবে। সেই বাক্সটি পরীক্ষা করে সংরক্ষণ করুন।


এই কার্যকারিতাটি কোর দ্বারা সরবরাহ করা হয় না। সম্ভবত কোনও থিম বা প্লাগইন এটি আপনার সেটআপে যুক্ত করছে?
ডেভ রোমি

আমি এটি আগেও দেখেছি, আমি জানতাম কোন প্লাগইন বা থিম এটি করেছে।
ডেভগার্সিয়া

0
  1. কাস্টম লিঙ্কটি # তে সেট করুন যা কোনও তালিকা আইটেম ফেরত দেয় না
  2. এই ফিল্টার যুক্ত করুন:

    add_filter( 'wp_nav_menu_items', 'wpse_remove_empty_links' );
    
    function wpse_remove_empty_links( $menu ) {
    
        return preg_replace("/<a href=\"#\">(.+?)<\/a>/is", "<span>$1</span>", $menu);
    
    }
  3. স্প্যান সিএসএস হিসাবে একই শৈলী পেতে সম্পাদনা করুন <a>, ভুলবেন না cursor: context-menu;


0

"কাস্টম লিঙ্কগুলি" মেনু আইটেম তৈরি করুন এবং "জাভাস্ক্রিপ্ট :;" যুক্ত করুন (ক্ষেত্রবিশেষে) URL ক্ষেত্রের জন্য। "#" ব্যবহারের চেয়ে এটি ভাল উপায় কারণ এটি ক্লিক করার সাথে সাথে এটি আপনার পৃষ্ঠায় শীর্ষে স্ক্রোল করবে না।


0

1/2019 থেকে লেখা, সঠিক HTML5 উত্পাদন করে এমন সমাধান নিম্নলিখিতটি করা উচিত।

  1. # তে সেট করা ইউআরএল এবং আপনার যে নামটি পছন্দ হবে তার সাথে একটি কাস্টম লিঙ্ক যুক্ত করুন। উভয় ক্ষেত্র প্রয়োজন।
  2. নতুন যুক্ত হওয়া কাস্টম লিঙ্কটি সম্পাদনা করুন যাতে URL টি খালি থাকে।
  3. পরিবর্তনগুলি সংরক্ষণ করুন।

এটি একটি শীর্ষ স্তরের নাভি উত্পাদন করবে <a>Menu</a>যা কোনও অ-ক্লিকযোগ্যযোগ্য লিঙ্ক উপস্থাপনের সঠিক উপায়।


0

আপনি <a>খাঁটি সিএসএস ব্যবহার করে সমস্ত প্রথম স্তরের মেনু আইটেমগুলির জন্য ট্যাগগুলিতে ইভেন্টগুলি অক্ষম করতে পারেন । .main-menuআপনার মেনু নামকরণ অনুসারে শ্রেণীর আরও একটি নাম থাকতে পারে।

/* disable parent menu items */
ul.main-menu > li > a {
    pointer-events: none;
}

-1

আরও একটি সহজ সমাধান অন্য প্রশ্নের উপর পাওয়া যেতে পারে:

অ্যাডমিন মেনু - উপ-মেনু পৃষ্ঠায় (সাব-মেনু না দেখিয়ে) শীর্ষ স্তরের মেনু হাইলাইট করুন

আস্কেলনের উত্তরটি দেখুন। কোনও প্রিগ_রেপ্লেস বা জেকুরির প্রয়োজন ছাড়াই কাজের পুরোপুরি।

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