Mendapatkan URL Path Saat Ini di WordPress

Akah Martono
2 min readAug 25, 2023

URL Full

URL full adalah URL lengkap yang terdiri dari protokol (http/https), host (biasa disebut domain), path, dan query string. URL full ini bisa anda lihat di address bar pada browser.

Contoh:
https://www.subarkah.com/test/my-current-path/?par1=abc&par2=def

Mendapatkan URL Full dengan Vanilla PHP

function get_current_path() {
if ( ( isset($_SERVER['HTTPS'] ) && ( $_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1 ) ) ||
( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' )
) {
$proto = 'https://';
} else {
$proto = 'http://';
}

return $proto . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}

echo get_current_path();

Output:
https://www.subarkah.com/test/my-current-path/?par1=abc&par2=def

Mendapatkan URL Full dengan WordPress

echo home_url( $_SERVER['REQUEST_URI'] );

Output:
https://www.subarkah.com/test/my-current-path/?par1=abc&par2=def

Dari kode di atas kita bisa melihat bahwa untuk mendapatkan full path dengan memanfaatkan fungsi home_url() pada WordPress kode yang diketik lebih sedikit daripada membuatnya dengan vanilla PHP, silahkan pilih yang anda suka. Untuk perbandingan performanya saya belum pernah test, jika anda ada waktu untuk mengetestnya silahkan share hasilnya di komen.

URL Relative

URL relative adalah URL full tanpa protokol dan host.

Contoh:
/test/my-current-path/?par1=abc&par2=def

Mendapatkan URL Relative dengan Vanilla PHP

echo $_SERVER['REQUEST_URI'];

Output:
/test/my-current-path/?par1=abc&par2=def

Mendapatkan URL Relative dengan WordPress

$url = 'https://www.subarkah.com/test/my-current-path/?par1=abc&par2=def';
echo wp_make_link_relative( $url );

Output:
/test/my-current-path/?par1=abc&par2=def

Untuk mendapatkan full relative path yang aktif pada dasarnya hanya perlu $_SERVER[‘REQUEST_URI’], adapun fungsi wp_make_link_relative() pada WordPress lebih cocok jika anda sudah memiliki data urlnya, dan akan lebih bermanfaat lagi jika data url tersebut lebih dari satu (misal dalam array atau dalam query loop). berikut contohnya:

$urls = [url1, url2, ...];
$rel_urls = [];
foreach( $urls as $url ){
$rel_urls[] = wp_make_link_relative( $url );
}

URL Path

URL path adalah URL relative tanpa query string.

Contoh:
/test/my-current-path/

Mendapatkan URL Path dengan Vanilla PHP

echo explode( '?', $_SERVER['REQUEST_URI'], 2 )[0];

Output:
/test/my-current-path/

Mendapatkan URL Path dengan WordPress

global $wp;
echo $wp->request;

Output:
test/my-current-path

Seperti yang anda lihat, untuk mendapatkan relative path lebih mudah menggunakan WordPress, dengan output yang selalu tanpa trailing slash (“/”) di awal dan di akhir maka akan lebih konsisten saat kita akan menggunakannya sebagai sebuah kondisi.

Originally published at https://www.subarkah.com.

--

--