বর্তমান পৃষ্ঠার ইউআরএল (পৃষ্ঠাগুলি সহ) পান


13

বর্তমান পৃষ্ঠার সঠিক URL টি স্বয়ংক্রিয়ভাবে পাওয়ার জন্য কি কোনও WP ফাংশন রয়েছে? অর্থ যদি আমি সবেমাত্র একটি পোস্ট খোলি, ফাংশনটি একইরূপে ফিরে আসে get_permalink(), তবে আমি যদি কোনও পৃষ্ঠার পৃষ্ঠাবদ্ধ উদাহরণে থাকি (মন্তব্যের মাধ্যমে পৃষ্ঠায়িত করার সময়), ফাংশনটি একই রকম ফিরে আসে get_pagenum_link(get_query_var('paged'))

আমি কোডেক্স সন্ধান করেছি কিন্তু যা খুজছিলাম তা পেলাম না। (তবে সেখানেও get_pagenum_link()নথিভুক্ত করা হয়নি।)

আমি ইতিমধ্যে এই ফাংশন সম্পর্কে জানি , তবে কাজটি করে এমন কোনও "নেটিভ" ডাব্লুপি ফাংশন থাকলে আমি আনন্দিত হব।

আগাম ধন্যবাদ! শুভেচ্ছা, রেন

উত্তর:


27

রাজীব ব্যাসের উত্তর ছাড়াও, আপনাকে কোনও খালি খালি প্যারামিটারগুলি পাস করার দরকার নেই add_query_arg()। নিম্নলিখিতগুলি সর্বদা আমার পক্ষে ভালভাবে কাজ করেছে:

// relative current URI:
$current_rel_uri = add_query_arg( NULL, NULL );

// absolute current URI (on single site):
$current_uri = home_url( add_query_arg( NULL, NULL ) );

ফাংশনটি পিছনে পড়ে $_SERVER[ 'REQUEST_URI' ]এবং urlencode_deep()এটি প্রয়োগ হয়। Https://github.com/WordPress/WordPress/blob/3.8/wp-includes/funitions.php#L673 দেখুন

সম্পাদনা:$_SERVER[ 'REQUEST_URI' ] অনুলিখিত ব্যবহারকারী ইনপুট হিসাবে উপস্থাপন add_query_arg()করা হয়েছে, প্রসঙ্গটি পরিবর্তিত হলে তার ফেরতের মানটি সর্বদা এড়ানো উচিত । উদাহরণস্বরূপ, esc_url_raw()ডিবি ব্যবহারের জন্য esc_attr()বা esc_url()এইচটিএমএল ব্যবহার করুন ।

হালনাগাদ

প্রদর্শিত উদাহরণ যা একটি নিখুঁত ইউআরআই তৈরি করতে হবে (স্কিম এবং হোস্ট ধারণ করে) উপ-ডিরেক্টরি সহ মাল্টিসাইটে কাজ করে না কারণ home_url()পাথ বিভাগ সহ সম্পূর্ণ ইউআরআই ফিরিয়ে দেবে। মাল্টিসাইট সচেতন কোডের জন্য আরও ভাল সমাধান হ'ল:

// absolute URI in multisite aware environment
$parts = parse_url( home_url() );
$current_uri = "{$parts['scheme']}://{$parts['host']}" . add_query_arg( NULL, NULL );

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


হতাশাজনক যে ওপি এই উত্তরটি সমাধান হিসাবে বেছে নেয় নি, যা এটি। ধন্যবাদ.
সিএফএক্স

3
global $wp;
$current_url = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );

কোনও ফাংশন নয়, তবে অবশ্যই ওয়ার্ডপ্রেস কোড ব্যবহার করা হচ্ছে ..

http://kovshenin.com/2012/current-url-in-wordpress/


2
এটি আংশিকভাবে কাজ করে, তবে কিছু জিনিস যেমন আমি চাই তেমন কাজ করে না: yearকোয়েরি স্ট্রিংয়ের মতো প্যারামিটারগুলি যুক্ত করা হয়, যদিও তারা আগে সেখানে ছিল না, এবং অন্যান্য পরামিতি, উদাহরণস্বরূপ replytocomপ্যারামিটারটি হারিয়ে যায়। আপনি কি এর কোনও সমাধান জানেন?
রেনা শুবার্ট

0

1) $_SERVER['REQUEST_URI']- এটি স্ক্রিপ্টটি কার্যকর করছে এমন পৃষ্ঠা অ্যাক্সেস করার জন্য URL টি ফিরিয়ে দেয়। http://www.example.com/product.php?id=5পৃষ্ঠাটি অ্যাক্সেস করতে যদি আপনার টাইপ করতে হয় তবে $_SERVER['REQUEST_URI']ফিরে আসে /product.php?id=5

2) $_SERVER['DOCUMENT_ROOT']- সার্ভারের কনফিগারেশন ফাইলের মধ্যে উল্লিখিত সার্ভারের মূল ডিরেক্টরিটি ফিরে আসে। এই পরিবর্তনশীলটি সাধারণত /usr/yoursite/wwwলিনাক্স এবং D:/xamps/xampp/htdocsউইন্ডোগুলির মতো পথ ফেরায়।

3) $_SERVER['HTTP_HOST']- HTTP শিরোনামের মতো হোস্টের নামটি দেয়। এই পরিবর্তনশীল সাধারণত মত পাথ ফেরৎ example.comযখন আপনাকে খুঁজে http://example.comব্রাউজারের ঠিকানা-দণ্ড ও বিনিময়ে www.example.comযখন আপনি দেখতে http://www.example.comঠিকানা-বারে। আপনি পিএইচপি ব্যবহার করে অনলাইনে অর্থ প্রদানের সময় সেশন সংরক্ষণ করার সময় এটি বেশ কার্যকর কারণ যেহেতু সঞ্চিত সেশনটি এর http://example.comমতো নয় http://www.example.com

4) $_SERVER['HTTP_USER_AGENT']- ওয়েব পৃষ্ঠাতে অ্যাক্সেসকারী ব্যবহারকারীর এজেন্টের (ব্রাউজার) বিশদ বিবরণ দেয়। আমরা strpos($_SERVER["HTTP_USER_AGENT"],”MSIE”)মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরার strpos($_SERVER["HTTP_USER_AGENT"],”Firefox”)সনাক্ত করতে ব্যবহার করতে পারি বা আপনি পিএইচপি-তে ফায়ারফক্স ব্রাউজার সনাক্ত করতে ব্যবহার করতে পারেন ।

5) $_SERVER['PHP_SELF']- বর্তমানে সম্পাদনকারী স্ক্রিপ্টের ফাইল-নাম ফেরত দেয়। ধরা যাক আপনি URL টি অ্যাক্সেস করছেন http://www.example.com/product.php?id=5তারপরে আপনার স্ক্রিপ্টে $_SERVER['PHP_SELF']ফিরে আসে /product.php

)) $_SERVER['QUERY_STRING']- ক্যুরি স্ট্রিংটি বর্তমানে সম্পাদনকারী স্ক্রিপ্টটিতে অ্যাক্সেসের জন্য ব্যবহার করা হলে ফেরত দেয়। অনুসন্ধানের স্ট্রিংগুলি সেই স্ট্রিংগুলি যা "" এর পরে পাওয়া যায়? আপনি $_SERVER['QUERY_STRING']যদি নিম্নলিখিত URL টি সম্পাদন করে স্ক্রিপ্টে ব্যবহার করেন http://www.example.com/index.php?id=5&page=productতবে এটি id=5&page=productআপনার স্ক্রিপ্টে ফিরে আসে ।

7) $_SERVER['REMOTE_ADDR']- বর্তমান পৃষ্ঠাটিতে অ্যাক্সেস করা দূরবর্তী মেশিনের আইপি ঠিকানাটি ফেরত দেয়। তবে আপনি $_SERVER['REMOTE_ADDR']ক্লায়েন্টের মেশিনের আসল আইপি অ্যাড্রেস পাওয়ার জন্য নির্ভর করতে পারবেন না । পিএইচপি-তে কীভাবে আসল আইপি অ্যাড্রেস পাবেন তা জানতে এই নিবন্ধটি দেখুন।

8) $_SERVER['SCRIPT_FILENAME']- বর্তমানে সঞ্চালিত ফাইলের পরম পথ ফেরত দেয় s এটি var/example.com/www/product.phpলিনাক্সের মতো পথ D:/xampp/xampp/htdocs/test/example.phpএবং উইন্ডোগুলির মতো পথ ফেরায়।


1
মনে রাখবেন যে এগুলির কোনওটিই আপনার সিএলআইতে উপলব্ধ নেই এবং তাই ক্রোন কাজের জন্য অকেজো।
কায়সার

0

wp_guess_url আপনি যা খুঁজছেন তা।

সাইটের URL টি অনুমান করুন।

ডাব্লুপি-অ্যাডমিন ডিরেক্টরিতে নয় কেবল রিটার্নের ইউআরএলগুলি পুনরুদ্ধার করতে ডাব্লুপি-অ্যাডমিন লিঙ্কগুলি সরিয়ে ফেলবে।


আমি যখন এটির ব্যবহার করার চেষ্টা করেছি তখন এটি বর্তমান পৃষ্ঠা ব্যতীত সম্পূর্ণ ভিন্ন URL দেয়।
কারবি

0

add_query_args( null, null ) খালি কী ( $qs[""] = null) সহ একটি অ্যারের উপাদান তৈরি করবে যদিও এটি ফলাফলকে প্রভাবিত করবে না।


Add_query_arg () অনুসারে | ফাংশন | ওয়ার্ডপ্রেস বিকাশকারী সংস্থানসমূহ , ২ য়, তৃতীয় প্যারামিটারগুলি alচ্ছিক এবং সেগুলি বাদ দেওয়া যেতে পারে।

add_query_args( null, null )আরও খাটো হতে পারে ।

$current_url = add_query_args( [] );

রয়েছে সবচেয়ে কম সংস্করণ যদিও এটি বাঞ্ছনীয় নয় যেমন 1 ম প্যারামিটার প্রয়োজনীয় প্যারামিটার।

$current_url = add_query_args();

তদতিরিক্ত, নোট করুন যে ওয়ার্ডপ্রেস একটি উপ-ডিরেক্টরিতে ইনস্টল থাকা অবস্থায় উভয়ই home_url( add_query_vars( [] ) )এবং home_url( add_query_arg( null, null ) ) আসল URL টি ফেরত দিতে পারে না

উদাহরণস্বরূপ https://example.com/wp/wp/fooওয়ার্ডপ্রেস ইনস্টল থাকা অবস্থায় ফিরে আসতে পারে https://example.com/wp/


আপডেট: 2017/01/23

পরম URL পেতে ডেভিডের সমাধানের ভিত্তিতে আমার সংস্করণ।

$parts = parse_url(home_url());
$uri   = $parts['scheme'] . '://' . $parts['host'];

if (array_key_exists('port', $parts)) {
    $uri .= ':' . $parts['port'];
}

$uri .= add_query_arg([]);

0

আমার জন্য <?php esc_url(the_permalink()); ?>কাজ (পৃষ্ঠাগুলি সহ একটি সংরক্ষণাগার পৃষ্ঠায়)।


অসম্ভব। the_permalink()পালানো পারমিলিংকের প্রতিধ্বনি দেয়, এটি কিছুই ফেরায় না। esc_url()কিছু না, এবং যদি এটা would, এটি একটি পলান URL হওয়া যাবে।
ফুসিয়া

আপনি ঠিক বলেছেন, এটি কেবলমাত্র পারমালিঙ্ক ক্যাশে করার কারণে কাজ করেছিল think
হেনিং ফিশার

-1

আমি এখন পৃষ্ঠাগুলি পেলাম না তবে আপনি লুপের মধ্যে ইউআরএল পেতে এই ফাংশনটি ব্যবহার করতে পারেন

<?php $ID = get_the_ID(); 
echo get_permalink( $ID ); ?>

অন্যথায় আপনি যদি পিএইচপি ব্যবহার করতে পছন্দ করেন না তবে আপনি এখানে jquery পদ্ধতির বিকল্পও বেছে নিতে পারেন (এটি আপনাকে এটিকে লুপের বাইরে কাজ করতে সহায়তা করবে)

$(document).ready(function () {
var vhref = $(location).attr('href');
var vTitle = $(this).attr('title');
$('#spnTitle').html('' + vTitle + '');
$('#spnURL').html('' + vhref + '');
});​

বা যদি আপনি পিএইচপি ফাংশন ব্যবহার করতে চান তবে আপনাকে লুপের বাইরে আইডি নেওয়া দরকার


1
দুঃখিত, তবে আমি যা চাইছিলাম ঠিক এটি নয় ... the_permalink()লুপটির ভিতরে ডাকা হলে আইডিটির প্রয়োজন হয় না।
রেনা শুবার্ট

2
এই প্রশ্নের মূল প্রশ্নের সাথে খুব সামান্যই সম্পর্ক ছিল। এটি সঠিকভাবে উত্তর দেয় নি বা বিষয় সম্পর্কে সত্যই কোনও মূল্যবান তথ্য দেয়নি।
jounileender

-2

আপনি বর্তমান পৃষ্ঠার URL টি পেতে ওয়ার্ডপ্রেস ফাংশন ব্যবহার করতে পারেন

the_permalink()

এটি আপনাকে স্রোমেট পৃষ্ঠা URL লিঙ্কটি ফিরিয়ে দেবে।


4
প্রায়; বর্তমান পোস্টের URL টি মুদ্রণthe_permalink() করবে । তবে এটি অন্যান্য অনুরোধগুলির জন্য কাজ করবে না এবং পৃষ্ঠাগুলির মতো চলকগুলি অন্তর্ভুক্ত করবে না। @ রেনা শুবার্ট যে উত্তরটি খুঁজছেন তা আসলেই নয়।
TheDeadMedic
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.