همانطور که میدانید آدرس پیشفرض کاربران در وردپرس با /author/ شناخته میشود و پس از author نام کاربری کاربر قرار میگیرد. در واقع در این برگه، تمامی نوشتههایی که توسط کاربر در سایت منتشر شده، نمایش داده میشود. در این نوشته قصد داریم تا نحوه تغییر پیوند یکتای نویسنده در وردپرس را به شما آموزش دهیم.
تغییر آدرس اختصاصی نویسنده در وردپرس
ما در این آموزش قصد داریم آدرس نویسنده را از /author/tidaweb
به /users/36
تغییر دهیم . سه گام زیر باید انجام شود تا آدرس نویسنده در وردپرس تغییر پیدا کند. این سه گام در قالب سه هوک برنامه نویسی شده است.
- تغییر آدرس base از
/author/tidaweb
به/users/36
با استفاده از اکشن init - اضافه کردن آدرس کوئری users به وردپرس با استفاده از فیلتر query_vars
- اضافه کردن قانون rewrite به وردپرس با استفاده از فیلتر generate_rewrite_rules
نکته: برای اجرای این کد، میتوانید آن را در فایل functions.php پوسته فرزند قرار دهید یا از افزونه Code Snippets استفاده نمایید.
قطعه کد زیر، آدرس base نویسنده (author) در وردپرس را به users تبدیل خواهد کرد.
/**
* @snippet Change author/username base to users/userID
* @author Tidaweb
* @compatible WordPress All Versions
*/
add_action('init','change_author_permalinks');
function change_author_permalinks() {
global $wp_rewrite;
// Change the value of the author permalink base to whatever you want here
$wp_rewrite->author_base = 'users';
$wp_rewrite->flush_rules();
}
قطعه کد دوّم، کوئریهای users را مجموعه کوئریهای وردپرس (query_vars) اضافه خواهد کرد.
/**
* @snippet Add users to query_vars
* @author Tidaweb
* @compatible WordPress All Versions
*/
add_filter('query_vars', 'users_query_vars');
function users_query_vars($vars) {
// add lid to the valid list of variables
$new_vars = array('users');
$vars = $new_vars + $vars;
return $vars;
}
قطعه کد سوّم، یک rewrite جدید به مجموعه rewrite های وردپرس اضافه میکند. این rewrite ادرس /users/36
را تحلیل کرده و به آدرس اصلی نویسنده ارجاع میدهد.
/**
* @snippet Add users rewrite
* @author Tidaweb
* @compatible WordPress All Versions
*/
add_filter('generate_rewrite_rules','user_rewrite_rules');
function user_rewrite_rules( $wp_rewrite ) {
$newrules = array();
$new_rules['users/(\d*)$'] = 'index.php?author=$matches[1]';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
در مقاله بالا ترفند تغییر پیوند یکتای نویسنده در وردپرس آموزش داده شد. در صورتی که سؤالی در این زمینه دارید، میتوانید آن را از بخش دیدگاهها با ما در میان بگذارید. همچنین اگر به دنبال ترفندهای بیشتر هستید، به ترفند وردپرس مراجعه کنید.
منبع : WordPress Development Stack Exchange