ব্লগ URL এর সাথে সম্পর্কিত এমন একটি URL সহ মেনুতে কীভাবে কাস্টম লিঙ্ক যুক্ত করবেন


16

আমার কাজের অংশটি ওয়ার্ডপ্রেস ওয়েবসাইট তৈরি করা। আমি ক্লায়েন্ট এটি পর্যালোচনা করে যেখানে পরীক্ষা সার্ভারে আপলোড করার মতো যথেষ্ট ভাল কিছু না পাওয়া পর্যন্ত আমি সাধারণত আমার ল্যাপটপে কাজ করি।

আমি প্রতিটি নতুন প্রকল্পের জন্য একটি ভার্চুয়ালহস্ট তৈরি করি তাই আমি সর্বদা এমন কোনও ডোমেনে ওয়ার্ডপ্রেস ইনস্টলেশন নিয়ে কাজ করি যা দেখতে দেখতে http://local.example.com/কিন্তু যখন সাইটটি সার্ভারে আপলোড করা হয় (আমার দ্বারা নিয়ন্ত্রিত নয়) তখন ডোমেনটি এমন কিছু হতে পারে http://testserver.com/arbitrary/path/example/

সমস্যাটি হ'ল আমি যদি উদাহরণস্বরূপ কোনও মেনুতে একটি কাস্টম লিঙ্ক যুক্ত করি তবে উদাহরণস্বরূপ /events/, এটি স্থানীয়ভাবে একটি লিঙ্ক তৈরি করা ভাল কাজ করবে http://local.example.com/events/, তবে পরীক্ষার সার্ভারে, লিঙ্কটি নির্দেশ করবে http://testserver/events/, যা সম্ভবত সঠিক নয়।
আমি যা চাই তা হ'ল কাস্টম লিঙ্কটি এমন একটি URL দেওয়া যা আমার স্থানীয় পরিবেশ এবং পরীক্ষার সার্ভার উভয় ক্ষেত্রেই কাজ করবে।

আমি ইতিমধ্যে এর দ্বারা homeএবং siteurlওয়ার্ডপ্রেস বিকল্পগুলি পরিবর্তন করার সমস্যাটি পরিচালনা করেছি :

  • স্থানীয় ডাটাবেসে সেই সেটিংস পরিবর্তন করা
  • ডাটাবেস একটি ডাম্প তৈরি
  • সার্ভারে ডাটাবেস আপডেট করুন
  • স্থানীয় বিকল্প পুনরুদ্ধার।

আমি কাস্টম লিঙ্কগুলির জন্য এবং প্রতিটিবার সার্ভারের ডাটাবেস আপডেট করার প্রয়োজন হলে সার্ভারের ইউআরএলগুলির সাথে সেগুলি প্রতিস্থাপনের জন্য আমি পুরো URL টি ব্যবহার করতে চাই না।

পোস্ট সামগ্রীর অভ্যন্তরের লিঙ্কগুলির জন্য, একটি প্লাগইন রয়েছে যা দুটি শর্টকোড যুক্ত করে সমস্যার সমাধান করে: http://wordpress.org/extend/plugins/url-shortcodes/ , তবে আমি কাস্টম লিঙ্কগুলির জন্য অনুরূপ কিছু খুঁজে পাচ্ছি না have ।


5
উইলিংটন, আমি আপনাকে যে কোনও জায়গায় ইউআরএল করতে সহায়তা করতে পারি না। আমি যা করতে পারি তা আপনাকে দর্শণকোষ.লা / অনুসন্ধান- এবং- স্থানের জন্য- ওয়ার্ডপ্রেস- ডেটাবেসগুলিতে নির্দেশ করে । আমি বেশ কিছু সময়ের জন্য ডেভিডের অনুসন্ধান এবং প্রতিস্থাপন ব্যবহার করে আসছি এবং উদাহরণস্বরূপ ইউআরএল - এমনকি সিরিয়ালযুক্ত ডেটা থাকা সত্ত্বেও আমি ভাল কাজ করি। সুতরাং আমি এটি কিভাবে করি: কেবল হার্ডকডযুক্ত লিঙ্কগুলি এবং অন্য ডোমেনে ডাটাবেস স্থানান্তরিত করার পরে রূপান্তর। শুভকামনা, পিটার
পিটার

এখন পর্যন্ত আমি একমাত্র উপায় যা একটি ডেভ পরিবেশ থেকে একটি লাইভ পরিবেশে সফলভাবে স্থানান্তরিত করতে পেরেছি তা হল এসকিউএল ডাম্পটি অনুসন্ধান এবং সম্পূর্ণ ফাইলটিতে প্রতিস্থাপন করার পরে, কেবলমাত্র বাড়ি এবং সাইটুরল বিকল্পগুলি পরিবর্তন করে না। আমার কাছে এমন ফাইলগুলি ছিল যেখানে ইউআরএলটি 1000 বারের বেশি ছিল। (এটি এখনও কীভাবে এটি উচ্চতর হতে পেরেছিল তা এখনও জানেন না :))
রব উইলিয়ামস

@ পিটার, @ রব আপনাকে উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ জানায়, আমি ভয় পেয়েছিলাম যে অনুসন্ধান এবং প্রতিস্থাপনের একমাত্র সমাধান তবে প্রথমে জিজ্ঞাসা করতে চেয়েছিলেন। আমি এই স্ক্রিপ্ট একবার দেখুন।
উইলিংটন ভেগা

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

উত্তর:


9

আমি এর জন্য একটি সমাধান খুঁজছিলাম এবং আমি একটি সহজ খুঁজে পেয়েছি।

এটি আপনার ইউআরএল ফিল্ডে রাখার প্রয়োজন:

/index.php/internal-site-name

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

এটা ঠিক কাজ করে!

শুভেচ্ছা ক্রিস


1
এটি কাজ করে তবে এটি ইউআরএলকে ইনডেক্স.এফপি অন্তর্ভুক্ত করে। # লিঙ্কগুলির সাথে একটি একক পৃষ্ঠার অ্যাপ্লিকেশনের ক্ষেত্রে এটি প্রথমে পৃষ্ঠাটি রিফ্রেশ করবে এবং তারপরে আপনাকে গন্তব্যে নিয়ে যাবে (কেবল প্রথমবারের মতো)। তবুও, একটি ভাল ধারণা
ক্যাটালিন ডিকোনেস্কু

আমি index.php অংশ ব্যতীত / কিছু ব্যবহার করেছি এবং কাজ করছে বলে মনে হচ্ছে
user3808307

4

আপনি nav_menu_link_attributesফিল্টারটি প্রতিটি মেনু আইটেমের আউটপুট হওয়ার আগে পরীক্ষা করতে এবং এটির জন্য href বৈশিষ্ট্যটি পরিবর্তন করতে পারেন ।

এই উদাহরণে, আমরা যে কোনও href বৈশিষ্ট্যগুলির সন্ধান করি যা একটি দিয়ে শুরু হয় /এবং সেই ক্ষেত্রে পরীক্ষার সাইটের ইউআরএলটি প্রেন্ডেন্ড করে:

function wpd_nav_menu_link_atts( $atts, $item, $args, $depth ){
    if( '/' == substr( $atts['href'], 0, 1 ) ){
        $atts['href'] = 'http://testserver.com/example' . $atts['href'];
    }
    return $atts;
}
add_filter( 'nav_menu_link_attributes', 'wpd_nav_menu_link_atts', 20, 4 );

আপনি এই কোডটি সহ একটি সাধারণ প্লাগইন তৈরি করতে পারেন এবং এটি কেবলমাত্র আপনার পরীক্ষার সার্ভারে সক্রিয় করতে পারেন বা পরীক্ষার সাইট পরিবেশ উপস্থিত থাকলে শর্তসাপেক্ষে এই ফিল্টারটি প্রয়োগ করে এমন কোনও ধরণের পতাকা তৈরি করতে পারে।


এটিই আমি খুঁজে পেয়েছি! তবে দয়া করে @ মাইলো, এই চৌকস ওয়ার্ডপ্রেস বেস ইউআরএল (ওয়ার্ডপ্রেসের সাইট_আরএলটি পান) দিয়ে তৃতীয় লাইনটি পরিবর্তন করুন: ts অ্যাটস ['href'] = সাইট_url ()। $ atts [ 'সূরা'];
gtamborero

2

<base href=" ">হেড মেটাতে ট্যাগ ব্যবহার করা পৃষ্ঠার সমস্ত সম্পর্কিত নোঙ্গরগুলিকে একটি বেস url দেবে।

তথ্যসূত্র:
https://www.w3.org/TR/html4/struct/links.html
12.4 পথের তথ্য: বেস উপাদান

ওয়ার্ডপ্রেসে আপেক্ষিক কাস্টম লিঙ্কগুলি:
আপনি যদি সাইট ইউআরএলটিকে সমস্ত অ্যাঙ্করগুলির বেস ইউআরএল হিসাবে দেখতে চান তবে এটিকে থিম / হেডার.এফপি এর মধ্যে যুক্ত করুন <head>:

<base href="<?php echo site_url(); ?>/">

আমি জানি আপনার জন্য দেরি হতে পারে তবে অন্য কাউকে সাহায্য করতে পারে।


প্রতিশ্রুতিবদ্ধ মনে হচ্ছে। আমি এটি পরীক্ষা করে আবার রিপোর্ট করব।
এরিক হিপারল - কোডস্লেয়ার2010

ehepperle.com/sites/in-progress/some-wp-site-root/আপনি স্পষ্টভাবে সাইট রুট সেট না করা পর্যন্ত পাথের মতো কাজ করে না । baseট্যাগ ব্যবহার করে ওয়েব বিকাশের গতি লক্ষণীয়ভাবে উন্নত হয় না , যেহেতু আপনি অন্য সাইটে মাইগ্রেট করবেন তখন আপনাকে বেসটি কী তা পুনরায় সংজ্ঞায়িত করতে হবে। যাইহোক, আমি href মানগুলির দৈর্ঘ্য হ্রাস করার মানটি দেখতে পাচ্ছি।
এরিক হিপারল - কোডস্লেয়ার2010

আইডিয়াটি ভাল তবে মনে হচ্ছে
ডাব্লুপি

1

মেনু সেটআপের একটি কাস্টম URL এ [ব্লগুরল] এর সাথে আপেক্ষিক লিঙ্কগুলি ব্যবহার করা সম্ভব। গোপন হ'ল একক দিয়ে আপেক্ষিক ইউআরএল শুরু করা /। যখন কোনও একক / কাস্টম ইউআরএল শুরু হয় তখন সিস্টেমটি সাধারণত প্রিপেন্ড করবে না http://এবং তারপরে কার্যকর ব্লগআরএল নির্বাহের সময় লক্ষ্য URL এ উত্পন্ন হবে।

উদাহরণস্বরূপ
আপনি যদি নিজের হোম পৃষ্ঠায় যেতে চান তবে কেবল /কাস্টম URL হিসাবে রাখুন

আপনি ফোল্ডারে সূচক পৃষ্ঠায় যেতে চান bbforumsতারপর করা /bbforumsকাস্টম URL রূপে।

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

উদাহরণস্বরূপ:
যদি আমার ব্লগটি হয় http://example.comএবং আমি এটি একটি সাবডোমেইনে পরীক্ষা করতে চাই তবে http://test.example.comউপরে উল্লিখিত আপেক্ষিক ইউআরএল কনভেনশনটি ব্যবহার করে মেনু সমস্যা ছাড়াই সাইটটি পরীক্ষা এবং উত্পাদনের মধ্যে স্থানান্তরিত করা যেতে পারে। সাইটটি স্থানান্তর করতে আমি এক্সসি ক্লোনার প্লাগইন ব্যবহার করে এই পদ্ধতির সফলভাবে পরীক্ষা করেছি।


6
এটি ব্লগের ইউআরএলগুলির জন্য কাজ করে না যার স্ল্যাশ রয়েছে, যেমন উদাহরণস্বরূপ :: ব্লগ । মেনু আইটেম '/' অনুসরণ করা আপনাকে কেবল উদাহরণ.কম এ নিয়ে যাবে
জিম্পাঞ্জি

1

প্রথমে আপনাকে ইউআরএল শর্টকোডগুলির জন্য এই প্লাগইনটি ইনস্টল করতে হবে ।

functions.phpআপনার থিমটিতে আপনার ফাইলটিতে এই কোডটি যুক্ত করুন :

class description_walker extends Walker_Nav_Menu {
    function start_el( &$output, $item, $depth, $args ) {
        global $wp_query;
        $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

        $class_names = $value = '';

        $classes = empty( $item->classes ) ? array() : (array) $item->classes;

        $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
        $class_names = ' class="'. esc_attr( $class_names ) . '"';

        $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';

        $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) . '"' : '';
        $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) . '"' : '';
        $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) . '"' : '';

        // echo $item->url;
        $string = explode( '::', $item->url, 3 );
        if ( $string[1] ) {
            $string[1] = str_replace( '-', ' ', $string[1] );
            $item->url = do_shortcode( "[$string[1]]" ); 
        }

        $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';

        $prepend = '<strong>';
        $append = '</strong>';
        $description  = ! empty( $item->description ) ? '<span>' . esc_attr( $item->description ) . '</span>' : '';

        if ( $depth != 0 ) {
            $description = $append = $prepend = "";
        }

        $item_output  = $args->before;
        $item_output .= '<a'. $attributes . '>';
        $item_output .= $args->link_before . $prepend . apply_filters( 'the_title', $item->title, $item->ID ) . $append;
        $item_output .= $description . $args->link_after;
        $item_output .= '</a>';
        $item_output .= $args->after;

        $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
    } 
}

তারপরে আপনাকে wp_nav_menuটেমপ্লেট ফাইলগুলি থেকে ফাংশনটি কল করতে হবে:

$arg = array( 
    'menu'        => "main-menu", 
    'echo'        => true, 
    'fallback_cb' => 'wp_page_menu', 
    'depth'       => 0, 
    'walker'      => new description_walker() 
); 
wp_nav_menu( $arg );

এটাই. তারপরে ব্যাক-এন্ড মেনু বিভাগে যান।

উদাহরণস্বরূপ, আমি যদি পৃষ্ঠার ইউআরএলটিকে একটি কাস্টম লিঙ্কে দিতে চাই, তবে আমি এটি এটি যুক্ত করব:

http://::blogurl-id='1302'::

এখন আপনি সামনের প্রান্তে গিয়ে শর্টকোডটি কাজ করে তা পরীক্ষা করতে পারেন।

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