bungfrangki Sebaik mungkin mencoba bergumul dengan hasrat. Gagasan. Sebelum hal itu benar-benar menghilang karena ketidakmampuan jiwa-raga untuk membuatnya selalu melekat. Saat-saat mulai terasa berat untuk dideklarasikan. Apa boleh buat, itu sudah tugas kita untuk membuat hidup menjadi lebih menarik dan independen.

Cara Menambahkan /id/ Sebagai Prefix di Permalink Halaman Post WordPress

1 min read

Cara Menambahkan /id/ Sebagai Prefix di Permalink Halaman Post WordPress

Pasti Anda sudah pernah melihat website atau blog dengan permalink yang diawali dengan kata /blog/ atau /id/ yang hanya berlaku di halaman postingan saja (single.php). Misalnya, namadomain.com/blog/post-name atau namadomain.com/id/post-name.

Custom struktur pemalink sebetulnya bisa dilakukan dari menu Settings > Permalink. Hanya saja, strukturnya berlaku untuk semua halaman.

Misalnya, jika kita melakukan kustomisasi permalink menjadi /id/%postmeta%/ maka prefix id itu akan muncul di semua url halaman. Mulai dari halaman post, page, category, tags, author dan lainnya.

Nah, biar tambahan prefix /id/ pada url ini hanya muncul di halaman postingan saja, maka kita perlu menambahkan beberapa baris kode di file function.php pada theme.

Masuk ke public_html lalu buka wp-content/themes/folder-tema/functions.php. Lalu tambahkan kode di bawah ini:

<?php

function create_new_url_querystring() {
    add_rewrite_rule(
        'id/([^/]*)$',
        'index.php?name=$matches[1]',
        'top'
    );
    add_rewrite_tag('%id%','([^/]*)');
}
add_action('init', 'create_new_url_querystring', 999 );
/**
 * Modifikasi post link
 * url akan menjadi /id/post-name alih-alih /post-name
 */
function append_query_string( $url, $post, $leavename ) {
	if ( $post->post_type != 'post' )
        	return $url;
	
	
	if ( false !== strpos( $url, '%postname%' ) ) {
        	$slug = '%postname%';
	}
	elseif ( $post->post_name ) {
        	$slug = $post->post_name;
	}
	else {
		$slug = sanitize_title( $post->post_title );
	}
    
	$url = home_url( user_trailingslashit( 'id/'. $slug ) );
	return $url;
}
add_filter( 'post_link', 'append_query_string', 10, 3 );
/**
 * Mengalihkan semua URL post ke URL baru yang menggunakan /id/
 * Jika error dan muncul pemberitahuan browser 'Too many redirects' atau 'Redirect loop', hapus semua kode di bawah ini
 */
function redirect_old_urls() {
	if ( is_singular('post') ) {
		global $post;
		if ( strpos( $_SERVER['REQUEST_URI'], '/id/') === false) {
		   wp_redirect( home_url( user_trailingslashit( "id/$post->post_name" ) ), 301 );
		   exit();
		}
	}
}
add_filter( 'template_redirect', 'redirect_old_urls' );

Kekurangan:

Sebaiknya ini tidak dilakukan pada website dengan kuantitas postingan yang sudah banyak. Kurang lebih hal ini (perubahan url) akan berdampak pada SEO. Mulai dari duplikat konten dan lain sebagainya.

Dalam kondisi tertentu, menerapkan cara ini akan berakibat error dengan pemberitahuan browser berupa “Too many redirects” atau “Redirect loop”. Jika mengalami hal itu, silahkan hapus kode pada catatan.

Jika Anda lebih menyukai model permalink yang ada tulisan /id/ alih-alih mempertimbangkan kemungkinan dampak terburuknya, silahkan lakukan cara di atas dengan hati-hati.

Referensi: sumber

bungfrangki Sebaik mungkin mencoba bergumul dengan hasrat. Gagasan. Sebelum hal itu benar-benar menghilang karena ketidakmampuan jiwa-raga untuk membuatnya selalu melekat. Saat-saat mulai terasa berat untuk dideklarasikan. Apa boleh buat, itu sudah tugas kita untuk membuat hidup menjadi lebih menarik dan independen.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *