{"id":73369,"date":"2025-03-21T21:00:54","date_gmt":"2025-03-21T13:00:54","guid":{"rendered":"https:\/\/www.hongkiat.com\/blog\/?p=73369"},"modified":"2025-03-11T18:53:50","modified_gmt":"2025-03-11T10:53:50","slug":"wordpress-uuid-author-url-security-guide","status":"publish","type":"post","link":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/","title":{"rendered":"How to Use UUID for WordPress Author URL"},"content":{"rendered":"<p>In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author\u2019s username, which poses a security risk for your WordPress site. Since the author username is exposed, attackers could use it to attempt to log in or brute-force their way into your site.<\/p>\n<p>To solve this problem, we can mask the author URL with a randomized ID like UUID. This way, the author URL will not reveal the author\u2019s username and will be more secure.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg\" alt=\"WordPress security illustration showing a shield protecting user profiles\" width=\"1000\" height=\"640\"><\/figure>\n<p>We\u2019ll be looking at two approaches: <a href=\"#the-hard-way\">The hard way<\/a>, where we write the code ourselves, and <a href=\"#the-easy-way\">the easy way<\/a>, where we use a plugin.<\/p>\n<p>So, without further ado, let\u2019s see how it works.<\/p>\n<hr>\n<h2 id=\"the-hard-way\">The Hard Way<\/h2>\n<p>To begin, create a new PHP file, for example <code>uuid-slug.php<\/code>, inside either the <code>\/wp-content\/plugin<\/code> directory or the <code>\/wp-content\/mu-plugins\/<\/code> directory, to load it as a <a href=\"https:\/\/developer.wordpress.org\/advanced-administration\/plugins\/mu-plugins\/\" target=\"_blank\" rel=\"noopener noreferrer\">must-use plugin<\/a>. This file will contain the plugin headers\u2026<\/p>\n<pre>\r\n\/**\r\n * Plugin bootstrap file.\r\n *\r\n * This file is read by WordPress to display the plugin's information in the admin area.\r\n *\r\n * @wordpress-plugin\r\n * Plugin Name:       Author UUID Slug\r\n * Plugin URI:        https:\/\/github.com\/hongkiat\/wp-author-uuid-slug\r\n * Description:       Use UUID for the author URL.\r\n * Version:           1.0.0\r\n * Requires at least: 6.0\r\n * Requires PHP:      7.4\r\n * Author:            Thoriq Firdaus\r\n * Author URI:        https:\/\/github.com\/tfirdaus\r\n *\/\r\n<\/pre>\n<p>\u2026and the logic required to implement UUID-based author URLs. In this case, we will provide a simple input in the user profile editor to add the UUID.<\/p>\n<pre>\r\nadd_action('show_user_profile', 'add_uuid_field_to_profile');\r\nadd_action('edit_user_profile', 'add_uuid_field_to_profile');\r\n\r\nfunction add_uuid_field_to_profile($user)\r\n{\r\n    $uuid = get_user_meta($user->ID, '_uuid', true);\r\n    ?>\r\n    &lt;table class=\"form-table\"&gt;\n        &lt;tr&gt;\n            &lt;th&gt;&lt;label for=\"user_uuid\"&gt;&lt;?php esc_html_e('UUID', 'hongkiat'); ?&gt;&lt;\/label&gt;&lt;\/th&gt;\n            &lt;td&gt;\n                &lt;input \n                    type=\"text\" \n                    name=\"user_uuid\" \n                    id=\"user_uuid\" \n                    value=\"&lt;?php echo esc_attr($uuid); ?&gt;\" \n                    class=\"regular-text\" \n                    &lt;?php echo !current_user_can('manage_options') ? 'readonly' : ''; ?&gt;\n                \/&gt;\n                &lt;p class=\"description\"&gt;\n                    &lt;?php \n                        if (current_user_can('manage_options')) {\n                            esc_html_e('Enter or update the UUID for this user.', 'hongkiat');\n                        } else {\n                            esc_html_e('This UUID is read-only for non-administrators.', 'hongkiat');\n                        }\n                    ?&gt;\n                &lt;\/p&gt;\n            &lt;\/td&gt;\n        &lt;\/tr&gt;\n    &lt;\/table&gt;\r\n    &lt;?php\r\n}\r\n\r\nadd_action('personal_options_update', 'save_uuid_field');\r\nadd_action('edit_user_profile_update', 'save_uuid_field');\r\n\r\nfunction save_uuid_field($user_id)\r\n{\r\n    if (!current_user_can('manage_options', $user_id)) {\r\n        return false;\r\n    }\r\n\r\n    $new_uuid = isset($_POST['user_uuid']) ? sanitize_text_field($_POST['user_uuid']) : '';\r\n\r\n    if (!empty($new_uuid) && is_uuid($new_uuid)) {\r\n        update_user_meta($user_id, '_uuid', $new_uuid);\r\n    } else {\r\n        delete_user_meta($user_id, '_uuid');\r\n    }\r\n}\r\n\r\nfunction is_uuid($value)\r\n{\r\n    $pattern = '\/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$\/i'; \/\/ UUID pattern.\r\n\r\n    return (bool) preg_match($pattern, $value);\r\n}\r\n<\/pre>\n<p>For security reasons, this input will only be active and editable for users with the <code>manage_options<\/code> permission, so only administrators will be able to add or update the UUID for users. Users without the proper permissions will see the input as read-only.<\/p>\n<h3>Change the Author URL<\/h3>\n<p>Next, we need to modify the author URL to use the UUID instead of the author\u2019s username. This can be achieved by implementing the <code>author_link<\/code> filter, as shown below:<\/p>\n<pre>\r\nadd_filter('author_link', 'change_author_url', 10, 3);\r\n\r\nfunction change_author_url($link, $author_id, $author_nicename)\r\n{\r\n    $uuid = get_user_meta($author_id, '_uuid', true);\r\n\r\n    if (is_string($uuid)) {\r\n        return str_replace('\/' . $authorSlug, '\/' . $uuid, $link);\r\n    }\r\n\r\n    return $link;\r\n}\r\n<\/pre>\n<p>This implementation will update the generated URL for the author, affecting both the front-end theme and the admin interface.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/author-uuid-view-url.jpg\" alt=\"WordPress admin panel showing author URL with UUID implementation\" width=\"1000\" height=\"640\"><\/figure>\n<h3>Handling Queries for Author Archives<\/h3>\n<p>Since we\u2019ve modified the URL structure for author archive URLs, we also need to handle the corresponding queries. Without this, WordPress would return a <strong>404 Not Found<\/strong> error because it wouldn\u2019t recognize how to query authors by their <code>_uuid<\/code> metadata.<\/p>\n<p>To implement this functionality, we can utilize the <code>pre_get_posts<\/code> hook as shown below:<\/p>\n<pre>\r\nadd_action('pre_get_posts', 'author_uuid_query');\r\n\r\nfunction author_uuid_query($query) {\r\n    \/**\r\n     * If the permalink structure is set to plain, the author should be queried\r\n     * by the user ID.\r\n     *\/\r\n    if ((bool) get_option('permalink_structure') === false) {\r\n        return;\r\n    }\r\n\r\n    $author_name = $query->query_vars['author_name'] ?? '';\r\n\r\n    if (! is_string($author_name) || ! is_uuid($author_name)) {\r\n        $query->is_404 = true;\r\n        $query->is_author = false;\r\n        $query->is_archive = false;\r\n\r\n        return;\r\n    }\r\n\r\n    $users = get_users([\r\n        'meta_key' => '_uuid',\r\n        'meta_value' => $author_name,\r\n    ]);\r\n\r\n    if (count($users) &lt;= 0) {\r\n        $query->is_404 = true;\r\n        $query->is_author = false;\r\n        $query->is_archive = false;\r\n\r\n        return;\r\n    }\r\n\r\n    $user = $users[0];\r\n\r\n    if (! $user instanceof WP_User) {\r\n        $query->is_404 = true;\r\n        $query->is_author = false;\r\n        $query->is_archive = false;\r\n\r\n        return;\r\n    }\r\n\r\n    $query->set('author_name', $user->user_nicename);\r\n}\r\n<\/pre>\n<p>The code above verifies whether the permalink structure is set to something other than the default \u201cPlain\u201d setting. We exclude handling queries for the \u201cPlain\u201d permalink structure because WordPress uses the author ID (<code>?author=&lt;id&gt;<\/code>) rather than the <code>author_name<\/code> in this case.<\/p>\n<h3>Changing the Author Slug in REST API<\/h3>\n<p>The user\u2019s username is also exposed in the <code>\/wp-json\/wp\/v2\/users<\/code> REST API endpoint. To enhance security, we\u2019ll modify this by replacing the username with the UUID. This can be accomplished by implementing the <code>rest_prepare_user<\/code> hook as demonstrated below:<\/p>\n<pre>\r\nadd_filter('rest_prepare_user', 'change_user_slug_in_rest_api', 10, 2);\r\n\r\nfunction change_user_slug_in_rest_api($response, $user)\r\n{\r\n    $data = $response->get_data();\r\n\r\n    if (is_array($data)) {\r\n        $uuid = get_user_meta($author_id, '_uuid', true);\r\n\r\n        if (is_string($uuid)) {\r\n            $data['slug'] = $uuid;\r\n        }\r\n    }\r\n\r\n    $response->set_data($data);\r\n\r\n    return $response;\r\n}\r\n<\/pre>\n<p>With this implementation, the author URL will now utilize the UUID instead of the username. Any attempts to access the author URL using the original username will result in a 404 not found error.<\/p>\n<p>While this solution works effectively for smaller sites or those with limited users, it can become cumbersome to manage when dealing with a large number of users. In such cases, implementing UUIDs manually for each user would be time-consuming and impractical.<\/p>\n<p>Therefore, let\u2019s explore an alternative approach that offers a more streamlined solution.<\/p>\n<hr>\n<h2 id=\"the-easy-way\">The Easy Way<\/h2>\n<p>For a simpler solution, we\u2019ll utilize a plugin called <a href=\"https:\/\/wordpress.org\/plugins\/syntatis-feature-flipper\/\" target=\"_blank\" rel=\"noopener noreferrer\">Feature Flipper<\/a>. This plugin provides several security features, including the ability to obfuscate usernames using UUIDs.<\/p>\n<p>You can install the plugin directly from the <strong>Plugins<\/strong> section in your WordPress dashboard. After installation and activation, navigate to <strong>Settings > Feature > Security<\/strong> and enable the <strong>Obfuscate Usernames<\/strong> option.<\/p>\n<figure><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/wp-obfuscate-usernames.jpg\" alt=\"WordPress Feature Flipper plugin settings interface showing security options\" width=\"1000\" height=\"640\"><\/figure>\n<p>Once you\u2019ve saved the settings, the plugin will automatically generate UUIDs for all existing users on your site. Additionally, it will assign UUIDs to any new users upon registration.<\/p>\n<hr>\n<h2>Conclusion<\/h2>\n<p>Implementing UUIDs for author URLs is an effective security measure that helps protect your WordPress site by concealing author usernames. This approach significantly reduces the risk of brute-force attacks and unauthorized access attempts.<\/p>\n<p>Throughout this tutorial, we\u2019ve explored two implementation methods. For those who prefer a custom solution, the complete source code is available <a href=\"https:\/\/github.com\/hongkiat\/wp-author-uuid-slug\" target=\"_blank\" rel=\"noopener noreferrer\">in our GitHub repository<\/a>. Alternatively, the <a href=\"https:\/\/wordpress.org\/plugins\/syntatis-feature-flipper\/\" target=\"_blank\" rel=\"noopener noreferrer\">Feature Flipper<\/a> plugin offers a more straightforward approach for users seeking a ready-made solution.<\/p>","protected":false},"excerpt":{"rendered":"<p>In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author\u2019s username, which poses a security risk for your WordPress site. Since the author username is exposed, attackers could use it to attempt to log in or brute-force their way into&hellip;<\/p>\n","protected":false},"author":113,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49],"tags":[],"topic":[],"class_list":["entry-content","is-maxi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Use UUID for WordPress Author URL - Hongkiat<\/title>\n<meta name=\"description\" content=\"In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author&#039;s username,\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use UUID for WordPress Author URL\" \/>\n<meta property=\"og:description\" content=\"In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author&#039;s username,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"Hongkiat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/hongkiatcom\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-21T13:00:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg\" \/>\n<meta name=\"author\" content=\"Thoriq Firdaus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@tfirdaus\" \/>\n<meta name=\"twitter:site\" content=\"@hongkiat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thoriq Firdaus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/\"},\"author\":{\"name\":\"Thoriq Firdaus\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7948c7a175d211496331e4b6ce55807\"},\"headline\":\"How to Use UUID for WordPress Author URL\",\"datePublished\":\"2025-03-21T13:00:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/\"},\"wordCount\":678,\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/wordpress-uuid-author-url-security-guide\\\/cover.jpg\",\"articleSection\":[\"WordPress\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/\",\"name\":\"How to Use UUID for WordPress Author URL - Hongkiat\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/wordpress-uuid-author-url-security-guide\\\/cover.jpg\",\"datePublished\":\"2025-03-21T13:00:54+00:00\",\"description\":\"In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author's username,\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/wordpress-uuid-author-url-security-guide\\\/cover.jpg\",\"contentUrl\":\"https:\\\/\\\/assets.hongkiat.com\\\/uploads\\\/wordpress-uuid-author-url-security-guide\\\/cover.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wordpress-uuid-author-url-security-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use UUID for WordPress Author URL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"name\":\"Hongkiat\",\"description\":\"Tech and Design Tips\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#organization\",\"name\":\"Hongkiat.com\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"contentUrl\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/wp-content\\\/uploads\\\/hkdc-logo-rect-yoast.jpg\",\"width\":1200,\"height\":799,\"caption\":\"Hongkiat.com\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/hongkiatcom\",\"https:\\\/\\\/x.com\\\/hongkiat\",\"https:\\\/\\\/www.pinterest.com\\\/hongkiat\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/#\\\/schema\\\/person\\\/e7948c7a175d211496331e4b6ce55807\",\"name\":\"Thoriq Firdaus\",\"description\":\"Thoriq is a writer for Hongkiat.com with a passion for web design and development. He is the author of Responsive Web Design by Examples, where he covered his best approaches in developing responsive websites quickly with a framework.\",\"sameAs\":[\"https:\\\/\\\/thoriq.com\",\"https:\\\/\\\/x.com\\\/tfirdaus\"],\"jobTitle\":\"Web Developer\",\"url\":\"https:\\\/\\\/www.hongkiat.com\\\/blog\\\/author\\\/thoriq\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Use UUID for WordPress Author URL - Hongkiat","description":"In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author's username,","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/","og_locale":"en_US","og_type":"article","og_title":"How to Use UUID for WordPress Author URL","og_description":"In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author's username,","og_url":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/","og_site_name":"Hongkiat","article_publisher":"https:\/\/www.facebook.com\/hongkiatcom","article_published_time":"2025-03-21T13:00:54+00:00","og_image":[{"url":"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg","type":"","width":"","height":""}],"author":"Thoriq Firdaus","twitter_card":"summary_large_image","twitter_creator":"@tfirdaus","twitter_site":"@hongkiat","twitter_misc":{"Written by":"Thoriq Firdaus","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#article","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/"},"author":{"name":"Thoriq Firdaus","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/e7948c7a175d211496331e4b6ce55807"},"headline":"How to Use UUID for WordPress Author URL","datePublished":"2025-03-21T13:00:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/"},"wordCount":678,"publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg","articleSection":["WordPress"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/","url":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/","name":"How to Use UUID for WordPress Author URL - Hongkiat","isPartOf":{"@id":"https:\/\/www.hongkiat.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg","datePublished":"2025-03-21T13:00:54+00:00","description":"In WordPress, you can register multiple authors, and each author will have their own URL. The problem is that this author URL shows the author's username,","breadcrumb":{"@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#primaryimage","url":"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg","contentUrl":"https:\/\/assets.hongkiat.com\/uploads\/wordpress-uuid-author-url-security-guide\/cover.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.hongkiat.com\/blog\/wordpress-uuid-author-url-security-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hongkiat.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use UUID for WordPress Author URL"}]},{"@type":"WebSite","@id":"https:\/\/www.hongkiat.com\/blog\/#website","url":"https:\/\/www.hongkiat.com\/blog\/","name":"Hongkiat","description":"Tech and Design Tips","publisher":{"@id":"https:\/\/www.hongkiat.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hongkiat.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.hongkiat.com\/blog\/#organization","name":"Hongkiat.com","url":"https:\/\/www.hongkiat.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","contentUrl":"https:\/\/www.hongkiat.com\/blog\/wp-content\/uploads\/hkdc-logo-rect-yoast.jpg","width":1200,"height":799,"caption":"Hongkiat.com"},"image":{"@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/hongkiatcom","https:\/\/x.com\/hongkiat","https:\/\/www.pinterest.com\/hongkiat\/"]},{"@type":"Person","@id":"https:\/\/www.hongkiat.com\/blog\/#\/schema\/person\/e7948c7a175d211496331e4b6ce55807","name":"Thoriq Firdaus","description":"Thoriq is a writer for Hongkiat.com with a passion for web design and development. He is the author of Responsive Web Design by Examples, where he covered his best approaches in developing responsive websites quickly with a framework.","sameAs":["https:\/\/thoriq.com","https:\/\/x.com\/tfirdaus"],"jobTitle":"Web Developer","url":"https:\/\/www.hongkiat.com\/blog\/author\/thoriq\/"}]}},"jetpack_featured_media_url":"https:\/\/","jetpack_shortlink":"https:\/\/wp.me\/p4uxU-j5n","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/73369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/users\/113"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/comments?post=73369"}],"version-history":[{"count":2,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/73369\/revisions"}],"predecessor-version":[{"id":73371,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/posts\/73369\/revisions\/73371"}],"wp:attachment":[{"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/media?parent=73369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/categories?post=73369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/tags?post=73369"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.hongkiat.com\/blog\/wp-json\/wp\/v2\/topic?post=73369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}