Operator URL pada Blogger
Berikut ini adalah beberapa operator pengubah URL yang dapat Anda gunakan untuk mengubah struktur URL.
path(url, path)
Berfungsi untuk mengubah komponen jalur.
<b:eval expr='path(data.blog.url, "foo.html")'/>
<b:eval expr='path(data.blog.url, "/foo.html")'/>
Kode di atas akan menghasilkan ini, bagaimanapun bentuk URL yang sedang aktif saat itu:
http://nama_blog.blogspot.com/foo.html
http://nama_blog.blogspot.com/foo.html
Operator ini juga tidak akan menghilangkan teks kueri yang sudah ada. Anda bisa mengetesnya dengan cara seperti ini:
<b:eval expr='data:blog.url'/>
<b:eval expr='path(data:blog.url, "foo.html")'/>
<b:eval expr='data:blog.url + "/foo.html"'/>
<b:eval expr='data:blog.homepageUrl + "/foo.html"'/>
Kode di atas akan menghasilkan ini ketika Anda mengunjungi blog Anda dengan menambahkan beberapa teks kueri seperti http://nama_blog.blogspot.com/search?q=foo
:
http://nama_blog.blogspot.com/search?q=foo
http://nama_blog.blogspot.com/foo.html?q=foo
http://nama_blog.blogspot.com/search?q=foo/foo.html
http://nama_blog.blogspot.com//foo.html
params(url, params)
Berfungsi untuk mengganti teks kueri pada URL atau menambahkannya jika belum ada.
<b:eval expr='params(data:blog.url, {
foo: "bar",
baz: "qux"
})'/>
Kode di atas akan menghasilkan ini:
http://nama_blog.blogspot.com?baz=qux&foo=bar
Operator ini sepertinya tidak mendukung teks kueri multi-level:
<!-- ?test=1&test=2&test=3 -->
<b:eval expr='params(data:blog.url, {
test: [1, 2, 3]
})'/>
<!-- ?test=1&test=2&test=3 -->
<b:eval expr='params(data:blog.url, {
test: {1, 2, 3}
})'/>
<!-- ?test=null -->
<b:eval expr='params(data:blog.url, {
test: {
0: 1,
1: 2,
2: 3
}
})'/>
<!-- Invalid expression! -->
<b:eval expr='params(data:blog.url, {
test[0]: 1,
test[1]: 2,
test[2]: 3
})'/>
<!-- ?"test[0]"=1&"test[1]"=2&"test[2]"=3 -->
<b:eval expr='params(data:blog.url, {
"test[0]": 1,
"test[1]": 2,
"test[2]": 3
})'/>
appendParams(url, params)
Berfungsi untuk menambahkan teks kueri atau mengubah nilai teks kueri yang sudah ada pada URL.
<b:eval expr='params(data:blog.url, {
foo: "bar"
})'/>
<b:eval expr='appendParams(data:blog.url, {
foo: "bar"
})'/>
Hasilnya akan menjadi seperti ini ketika kita berada di halaman pencarian:
http://nama_blog.blogspot.com/search?foo=bar
http://nama_blog.blogspot.com/search?foo=bar&q=baz
Seharusnya akan menghasilkan seperti contoh di atas, tapi setelah Saya coba sendiri ternyata hasilnya tidak ada bedanya dengan ketika Saya menggunakan params
. Mungkin ini bug.
fragment(url, fragment)
Berfungsi untuk menyisipkan fragmen URL.
<b:eval expr='fragment(data:blog.url, "foo")'/>
<b:eval expr='fragment(data:blog.url, "#foo")'/>
<b:eval expr='data:blog.url + "#foo"'/>
Hasilnya akan menjadi seperti ini:
http://nama_blog.blogspot.com#foo
http://nama_blog.blogspot.com#foo
http://nama_blog.blogspot.com#foo
15 Komentar
Kang Rian リアンさん
Apik nih .. sy pantau dulu mas taufik! nyimak.. terimakasih
Sulis Stya
operator url ini apa dan fungsinya apa ya mas?
Taufik Nurrohman
Paragraf pertama:
Sulis Stya
ok, terimakasih mas Taufik Nurrohman sudah berkenan menjawab. lalu apa tujuan merubah struktur URL tersebut ?
Hafid Maulana
Bantu jawab. Contoh fungsi untuk menambah parameter url amp=1 pada URL Blogger. Jadi halaman amp akan ditampilkan pada /lorem.html?amp=1 bukan di /lorem.html?m=1
Dista
UP! Saya kesini juga gara gara mau ubah url amp.. :D
Taufik Nurrohman
Adi
Kalau mau menampilkan pathname saja apa ada operator urlnya juga mas di blogger?
Taufik Nurrohman
Sampai saat ini belum ada mas. Kalau di Mecha ada HEHEHEHEHE.
Adi
Kalau kode JavaScript-nya dimasukkan ke dalam atribut
href
apa bisa dirender mas atau cara lainnya apa tidak bisa mas? Saya sedang mencoba menggabungkan website blogspot satu dengan blogspot lain dengan workers seperti ini contohnyatravelign.nl/blog/
namun saya terkendala dengan pathname-nya.Taufik Nurrohman
Kalaupun memang bisa menggunakan JavaScript, Saya tetap tidak menyarankan mas. Soalnya kalau kondisi sedang ada masalah, misalnya gagal memuat JavaScript atau karena ada kesalahan di sintaks, nanti seluruh tautan kustom malah akan rusak. Dan kita nggak pernah tahu.
Adi
sayang sekali, kalau operator url blogger seperti itu ada mungkin sangat bermanfaat nantinya. website saya tersebut adalah website blogger yang saya custom domain dengan subdirektori dari domain utama menggunakan cloudflare workers
oh ya mas sistem komentar website ini apa tidak bisa memberitahu melalui email kalau mendapat balasan?
Taufik Nurrohman
Dibuat fitur seperti itu sebenarnya bisa mas, dengan bantuan fungsi
send
. Cuma seringnya surel otomatis akan langsung masuk ke folder spam atau malah tidak masuk sama sekali. Mungkin karena Saya masih memakai shared-hosting jadi kurang begitu dipercaya. Padahal pengaturan HTTP header sudah oke menurut Saya.Taufik Nurrohman
Eh, sepertinya bisa mas mengganti URL di kode sumber, tapi via fitur Cloudflare secara langsung. Coba cek referensi ini: https://blog.cloudflare.com/introducing-htmlrewriter
Adi
sebenarnya saya sudah menggunakan script rewrite dengan 1 route yang sama dengan script worker lainnya namun cara tersebut tidak diperbolehkan karena duplikat routenya. dan juga saya telah mencoba menggabungkan script rewrite ini https://developers.cloudflare.com/workers/examples/rewrite-links dengan script lainnya https://developers.cloudflare.com/workers/examples/bulk-origin-proxy namun tidak berhasil. apa mas tahu cara menggabungkan script tersebut mas?