Cara Mengubah URL postingan pada functions.php WordPress

Photo by John Schnobrich On Unsplash

Jika Anda membaca artikel ini ini, Anda harus mengetahui sesuatu tentang kelas WP_Rewrite. Ini memungkinkan Anda untuk mengubah permalink WordPress, menulis ulang peraturan, mengubah strukturnya, lanjutkan untuk membaca karna Anda akan mengetahui Cara Mengubah URL postingan WordPress pada function.php.

Dalam artikel ini saya tidak akan menggunakan WP_Rewrite, saya hanya ingin menunjukkan cara lain mengubah permalink objek tertentu di blog Anda (jenis posting apa pun atau taksonomi apa pun). Ini menggunakan cara manual dan terdiri dari 3 langkah sederhana yaitu mengarahkan ulang, mengubah permintaan kueri, menulis ulang tautan.

Link MangcodingLangkah 1. Redirect menggunakan «template_redirect»

Jika Anda ingin halaman Anda dapat diakses oleh URL lama, atur redirect 301 dari semua URL lama ke URL yang baru (silahkan diterapkan melalui .htaccess juga).

Catatan: Pada contoh di bawah ini saya menggunakan category sebagai awalan kategori default dan tag sebagai awalan tag posting default.

Silahkan Anda masukkan kode berikut ke tema Anda saat ini pada functions.php.

function rudr_url_redirects() {
    /* in this array: old URLs=>new URLs */
    $redirect_rules = array(
        array('old'=>'/category/uncategorized/','new'=>'/category/Uncategorized/'), // category
        array('old'=>'/contacts/','new'=>'/Contacts/'), // page
        array('old'=>'/hello-world/','new'=>'/hello-planet/'), // post
        array('old'=>'/tag/wordpress/','new'=>'/tag/WordPress/') // post tag
    );


    foreach($redirect_rules as $rule) {
        // if URL of request matches with the one from the array, then redirect
        if(urldecode($_SERVER['REQUEST_URI']) == $rule['old']) {
            wp_redirect(site_url($rule['new']), 301);
            exit();
        }
    }
}


add_action('template_redirect', 'rudr_url_redirects');

Dari kode diatas mungkin Anda memperhatikan bahwa saya menggunakan kode ini sebagian besar untuk memproses URL.

Link MangcodingLangkah 2. Ubah permintaan menggunakan hook «permintaan»

Langkah selanjutnya yaitu melakukan pengalihan. Sekarang kita perlu membuat WordPress mengerti jika URL ditulis ulang. Silahkan perhatikan kode dibawah ini!

function rudr_rewrite_request($query) {
    $request_uri = urldecode($_SERVER['REQUEST_URI']);


    /* for categories */
    if ($request_uri == '/category/Uncategorized/') {
        $query['category_name'] = 'uncategorized';
    }


    /* for pages */
    if ($request_uri == '/Contacts/') {
        $query['pagename'] = urlencode('contacts');
        unset($query['name']);
    }


    /* for posts */
    if ($request_uri == '/hello-planet/') {
        $query['name'] = 'hello-world';
    }


    /* for tags */
    if ($request_uri == '/tag/WordPress/') {
        $query['tag'] = 'wordpress';
    }


    return $query;
}


add_filter('request', 'rudr_rewrite_request', 9999, 1);

Link MangcodingLangkah 3. Tulis ulang tautan

Mengubah URL Postingan pada WordPress

Jika Anda tidak ingin browser menampilkan URL lama saat mengarahkan kursor ke tautan, silahkan perhatikan dan gunakan cara di bawah ini.

Untuk posting dan halaman
function rudr_post_permalink($url, $post) {
    if (!is_object($post)) {
        $post = get_post($post_id);
    }


    $replace = $post->post_name;


    /* We should use a post ID to make a replacement.
       It is required if you use urf-8 characters in your URLs */
    if ($post->ID == 1) {
        $replace = 'hello-planet';
    }


    if ($post->ID == 12) {
        $replace = 'Contacts';
    }


    $url = str_replace($post->post_name, $replace, $url);


    return $url;
}


add_filter('post_link', 'rudr_post_permalink', 'edit_files', 2);
add_filter('page_link', 'rudr_post_permalink', 'edit_files', 2);
add_filter('post_type_link', 'rudr_post_permalink', 'edit_files', 2);

Jika Anda tidak tahu di mana mendapatkan post ID, atau term ID, tinggalkan komentar atau Anda hubungi melalui media sosial Mangcoding, dan saya akan menjelaskannya untuk Anda.

Untuk kategori dan tag
function rudr_term_permalink($url, $term, $taxonomy) {
    $replace = $term->slug;


    /* by ID as well */
    if ($term->term_id == 5) {
        $replace = 'Uncategorized';
    }


    if ($term->term_id == 55) {
        $replace = 'WordPress';
    }


    $url = str_replace($term->slug, $replace, $url);


    return $url;
}


add_filter('term_link', 'rudr_term_permalink', 10, 3);
Plugin Permalinks Kustom sebagai alternatif

Jika Anda tidak ingin merubah atau menambahkan kode di functions.php, saya sarankan Anda menggunakan salah satu plugin yaitu Custom Permalinks.

Contoh untuk kategori :

Cara Mengubah URL pada WordPress dengan Plugin

Itulah artikel Cara Mengubah URL postingan pada functions.php WordPress yang bisa Mangcoding sharing. Mudah-mudahan ini bisa bermanfaat dan dapat membantu Anda. Silahkan Anda coba praktekkan apa yang Mangcoding jelaskan pada Artikel diatas. Dan jika ada kritik serta saran yang dapat membangun, silahkan komentar atau kirim melalui email dan media sosial Mangcoding.

Terimakasih.

Referensi : Rudrastyh