বর্তমান পৃষ্ঠার ইউআরএল কিভাবে প্রদর্শিত হবে?


55

আমি কাস্টম পিএইচপি কোড যুক্ত করতে চাই তা নিশ্চিত করতে যে যখনই আমার সাইটের কোনও পৃষ্ঠা আমার ব্রাউজারে লোড হয়, সেই পৃষ্ঠার URL টি স্ক্রিনে প্রতিধ্বনিত হয়। আমি ব্যবহার করতে পারি echo get_permalink(), তবে এটি সমস্ত পৃষ্ঠায় কাজ করে না। কিছু পৃষ্ঠাগুলি (যেমন আমার হোমপেজ ) বেশ কয়েকটি পোস্ট প্রদর্শন করে এবং আমি যদি get_permalink()এই পৃষ্ঠাগুলিতে ব্যবহার করি তবে প্রদর্শিত পৃষ্ঠার ইউআরএল ফিরে আসে না (আমার বিশ্বাস এটি লুপের শেষ পোস্টের URL টি ফেরত দেয়) returns এই পৃষ্ঠাগুলির জন্য, আমি কীভাবে URL টি ফিরিয়ে দিতে পারি?

get_permalink()লুপটি কার্যকর হওয়ার আগে আমি যে কোনও বিশেষ হুকের সাথে আগুন জ্বালিয়ে দিতে পারি ? বা আমি কোনওভাবে লুপটি ভেঙে ফেলতে পারি, বা এটি শেষ হয়ে গেলে এটি পুনরায় সেট করতে পারি?

ধন্যবাদ।


আপনি এই URL টি দিয়ে কী করতে চান সে সম্পর্কে কোনও প্রসঙ্গ সরবরাহ করতে পারেন? আপনি কি শেয়ারযোগ্য ইউআরএল তৈরি করার চেষ্টা করছেন? লিঙ্ক / ক্রিয়াকলাপের জন্য কাস্টম URL গুলি জমা করবেন?
টম জে নোয়েল

@ টমজেউওয়েল আমি একটি নির্দিষ্ট জেএস স্ক্রিপ্ট তৈরি করতে চাই, তবে কেবলমাত্র নির্দিষ্ট পৃষ্ঠাগুলিতে (এই ক্ষেত্রে, সেই পৃষ্ঠাগুলি আমার সাইটের হোমপেজ হ'ল বিভিন্ন ভাষায়: উদাহরণ . com , উদাহরণ. com/fr , example.com/es , ইত্যাদি)। জেএস ফাইলটি কেবলমাত্র হোমপেজে প্রদর্শিত বেশ কয়েকটি শিরোনামে হাইপারলিঙ্ক যুক্ত করতে সার্ভার করবে।
cag8f

কেন শুধু ব্যবহার is_home()বা is_page( 'fr' )ইত্যাদি ব্যবহার করবেন না এবং যদি এটি সত্য হয় তবে কেবল স্ক্রিপ্টটি সজ্জিত করবেন?
টম জে নওয়েল

@ টমজেউওয়েল ভাল এখন আমার কোডটি if ( home_url( $wp->request ) == home_url() ) { wp_enqueue_script();} ভাষা-নির্বিশেষে প্রতিটি হোম পৃষ্ঠায় এটি প্রকাশিত হবে বলে মনে হচ্ছে। আপনি কি পরামর্শ দিচ্ছেন?
cag8f

কেন ব্যবহার $_SERVER['REQUEST_URI']এবং সংস্থার নয়? এই প্রশ্নটি দেখুন: stackoverflow.com/q/6768793/247696
ফ্লিম

উত্তর:


86

get_permalink() কেবলমাত্র একক পৃষ্ঠাগুলি এবং পোস্টগুলির জন্য দরকারী, এবং কেবল লুপের অভ্যন্তরে কাজ করে।

সবচেয়ে সহজ উপায় আমি দেখেছি:

global $wp;
echo home_url( $wp->request )

$wp->requestURL এর পথ অংশ অন্তর্ভুক্ত করে, যেমন। /path/to/pageএবং home_url()সেটিংস> সাধারণের URL টি আউটপুট করে তবে আপনি এটির জন্য একটি পাথ সংযোজন করতে পারেন, তাই আমরা এই কোডের হোম URL এ অনুরোধের পথটি যুক্ত করছি।

নোট করুন যে এটি সম্ভবত প্লেমলিংকস সমভূমিতে সেট করা নিয়ে কাজ করবে না এবং কোয়েরি স্ট্রিংগুলি ছেড়ে দেবে ( ?foo=barURL এর অংশ)।

ইউআরএল পাওয়ার জন্য যখন পারমালিকগুলি সমতলে সেট করা থাকে আপনি তার $wp->query_varsপরিবর্তে ব্যবহার করতে পারেন add_query_arg():

global $wp;
echo add_query_arg( $wp->query_vars, home_url() );

পারমালিঙ্ক সেটিংস নির্বিশেষে ক্যোরি স্ট্রিং সহ বর্তমান ইউআরএল পেতে আপনি এই দুটি পদ্ধতি একত্রিত করতে পারেন:

global $wp;
echo add_query_arg( $wp->query_vars, home_url( $wp->request ) );

7
পার্মালিনক্স প্লেইন সেট এমন: echo '//' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
ম্যাক্স ইউদিন

1
@ জ্যাকব আমি এটি চেষ্টা করেছি, তবে মনে হয় এটি কেবলমাত্র আমার হোমপৃষ্ঠানের ইউআরএল ফিরিয়ে দিচ্ছে। যেমন আপনি এই পৃষ্ঠার উপরের বাম দিকে দেখতে পারেন ( dev.horizonhomes-samui.com/properties/hs0540 ), যেখানে আমি কোডটি প্রবেশ করিয়েছিecho home_url( $wp->request ) । আমি global $wpপাশাপাশি অন্তর্ভুক্ত করা নিশ্চিত করেছে । পারমালিঙ্কস 'সরল' নয়, তবে 'পোস্টের নাম' এ সেট করা আছে। আমি লগে কোনও প্রাসঙ্গিক পিএইচপি ত্রুটি দেখতে পাচ্ছি না। এই নির্দিষ্ট পৃষ্ঠাটি আমার ডেভ সাইটের একটি অংশ, যা অন্যথায় দর্শকদের জন্য অবরুদ্ধ। আমি নিশ্চিত না যে বিষয়টি গুরুত্বপূর্ণ কিনা। সম্পাদনা: প্রকৃতপক্ষে, এই চিন্তাটি ধরে রাখুন - ব্যবহারকারীর ত্রুটি হতে পারে। পাশে দাঁড়াও ...
cag8f

@ জ্যাকব সম্পাদনা 2: ঠিক আছে আপনার কোডটি কার্যকরভাবে কাজ করে। আমার সমস্যাটি হ'ল আমি ফাংশন.এফপি 'নগ্ন' কোডগুলিতে অন্তর্ভুক্ত ছিলাম, অর্থাত কোনও হুকের সাথে সংযুক্ত কোনও ফাংশনে নয়। সুতরাং আমার কোডটি ব্রাউজারে প্রদর্শিত পৃষ্ঠার নির্বিশেষে হোমপেজের ইউআরএল ফিরিয়ে দিচ্ছে। একবার আমি কোনও ফাংশনের অভ্যন্তরে কোডটি সরিয়ে নিয়েছি - ডাব্লুপি হুকের সাথে সংযুক্ত একটি ফাংশন (wp_enqueue_scriptts), এটি প্রকৃতপক্ষে প্রদর্শিত পৃষ্ঠার ইউআরএল ফিরিয়ে দেয়। আপনি কি সেই আচরণের কারণ জানেন? তার জন্য আমার একটি নতুন প্রশ্ন তৈরি করতে হবে need
cag8f

3
@ cag8f যদি কোডটি "নগ্ন" বসে ফাংশন.এফপিতে থাকে তবে আপনি $ ডাব্লুপিপি অবজেক্টের সমস্ত বৈশিষ্ট্য সেট আপ করার আগে এটি চালাচ্ছেন। আপনি যখন এটি কোনও উপযুক্ত হুকের সাথে সংযুক্ত কোনও ফাংশনে আবদ্ধ করেন তবে আপনি ওয়ার্ডপ্রেস কোড চালানোর উপযুক্ত বিন্দু না হওয়া পর্যন্ত এটি কার্যকর করতে বিলম্ব করছেন।
অ্যান্ডি ম্যাকোলে-ব্রুক

এই পদ্ধতিগুলি সমস্ত দুর্দান্ত এবং ওয়ার্ডপ্রেসের সাথে কাজ করার দুর্দান্ত ধারণা ideas trailingslashit()আপনার প্রয়োজন অনুসারে আপনি এগুলিতে যুক্ত করতে পারেন ।
জেক

8

ওয়ার্ডপ্রেসে পুরো বর্তমান ইউআরএল পেতে আপনি নীচের কোডটি ব্যবহার করতে পারেন:

global $wp;
$current_url = home_url(add_query_arg(array(), $wp->request));

এটি ক্যোয়ারী প্যারামিটার সহ পুরো পথটি প্রদর্শন করবে।


হাই - আপনার যদি বিকাশকারী.ওয়ার্ডপ্রেস.আর.গ্রন্থ / রেফারেন্স / ফাংশনস / অ্যাডডি_কোয়ারি_আরগটি দেখে থাকেন তবে আপনি দেখতে পাবেন যে আপনার কোডটি আসলে বিদ্যমান ক্যোয়ারী প্যারামিটারগুলি সংরক্ষণ করে না।
অ্যান্ডি ম্যাকোলে-ব্রুক

2
ক্যোয়ারী পরামিতি সংরক্ষণ করার জন্য আপনার খালি প্রতিস্থাপন করা প্রয়োজন চাই array()সঙ্গে $_GET। যেমন:home_url(add_query_arg($_GET,$wp->request));
ব্র্যাড অ্যাডামস

ওয়ার্ডপ্রেস উপ
মনজুরওয়ানী

1
function current_location()
{
    if (isset($_SERVER['HTTPS']) &&
        ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
        isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
        $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
        $protocol = 'https://';
    } else {
        $protocol = 'http://';
    }
    return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}

echo current_location();

আপনি কী ব্যাখ্যা করতে পারেন যে এই কোডটি কীভাবে এবং কেন প্রশ্নটি সমাধান করে?
কিরো

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

1

নিম্নলিখিত কোডটি বর্তমান ইউআরএল দেবে:

global $wp;
echo home_url($wp->request)

আপনি কোয়েরি পরামিতিগুলির সাথে পুরো URL টি পেতে নীচের কোডটি ব্যবহার করতে পারেন।

global $wp;  
$current_url = home_url(add_query_arg(array($_GET), $wp->request));

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


এই স্নিপেটটি wp-admin/plugins.phpআমার বর্তমান ইউআরএল এ চলে যায়, এটি কেবলমাত্র মূল পাথ এবং ক্যোয়ারী স্ট্রিং।
Ryszard Jędraszyk

0

এটি উদাহরণের একটি উন্নত উপায় যা পূর্বে উল্লিখিত হয়েছিল। চমত্কার ইউআরএল সক্ষম করা থাকলে এটি কাজ করে তবে / পৃষ্ঠা-স্লাগ /? প্যারাম = 1 বা URL মোটেও কুৎসিত আছে এমন কোনও কোয়েরি প্যারামিটার থাকলে তা বাতিল করে দেয় disc

নিম্নলিখিত উদাহরণ উভয় ক্ষেত্রে কাজ করবে।

    $query_args = array();

    $query = wp_parse_url( $YOUR_URL );

    $permalink = get_option( 'permalink_structure' );

    if ( empty( $permalink ) ) {

        $query_args = $query['query'];

    }

    echo home_url( add_query_arg( $query_args , $wp->request ) )

0

wp_guess_url()আপনার যা প্রয়োজন তা হতে পারে । সংস্করণ 2.6.0 থেকে উপলব্ধ।


এটি কেবল বেস URL টি অনুমান করে। সম্মুখভাগে, আপনি এর সাথে একইরকম প্রভাব ফেলবেন home_url()
জেক

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