{"id":385221,"date":"2026-10-16T09:32:51","date_gmt":"2026-10-16T09:32:51","guid":{"rendered":"https:\/\/cn.wordpress.org\/plugins\/toslug\/"},"modified":"2026-10-16T09:32:23","modified_gmt":"2026-10-16T09:32:23","slug":"toslug","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/toslug\/","author":16982120,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.1.3","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"ToSlug","header_author":"\u8001\u848b","header_description":"Automatically generate random or MD5-style WordPress post slugs.","assets_banners_color":"5f7495","last_updated":"2026-10-16 09:32:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.lezaiyun.com\/toslug.html","header_author_uri":"https:\/\/www.laojiang.me","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"laobuluo","date":"2026-10-16 09:32:23","revision":3750061}},"upgrade_notice":{"1.2.1":"<p>Admin assets now load through WordPress enqueue APIs to meet plugin directory requirements.<\/p>","1.2.0":"<p>Important fix for new-post slug generation and WordPress coding-standard improvements. After upgrading, review your ToSlug settings.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3750061,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3750061,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3750061,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3750061,"resolution":"1","location":"assets","locale":"","width":1554,"height":1318}},"screenshots":[]},"plugin_section":[],"plugin_tags":[17038,2662,244,561,538],"plugin_category":[],"plugin_contributors":[169988],"plugin_business_model":[],"class_list":["post-385221","plugin","type-plugin","status-publish","hentry","plugin_tags-md5","plugin_tags-permalink","plugin_tags-random","plugin_tags-slug","plugin_tags-url","plugin_contributors-laobuluo","plugin_committers-laobuluo"],"banners":{"banner":"https:\/\/ps.w.org\/toslug\/assets\/banner-772x250.png?rev=3750061","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/toslug\/assets\/icon-128x128.png?rev=3750061","icon_2x":"https:\/\/ps.w.org\/toslug\/assets\/icon-256x256.png?rev=3750061","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/toslug\/assets\/screenshot-1.png?rev=3750061","caption":""}],"raw_content":"<!--section=description-->\n<p>ToSlug is a WordPress plugin that automatically generates URL slugs for posts. It can create random alphanumeric or MD5-based slugs to help obscure predictable permalink patterns.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Automatically generate a random or MD5 slug when a new post is first saved<\/li>\n<li>Configurable slug length (8-32 characters)<\/li>\n<li>Optional setting to regenerate slugs on every post update<\/li>\n<li>Choose which public post types are supported (Post, Page, and custom post types; attachments are excluded)<\/li>\n<li>Track managed posts with post meta so existing content is not rewritten by accident<\/li>\n<li>Sample slug preview on the settings page<\/li>\n<li>Batched bulk processing with an ID cursor for larger sites<\/li>\n<li>Cleans up options and managed-post markers on uninstall<\/li>\n<\/ul>\n\n<h4>Links<\/h4>\n\n<ul>\n<li>Plugin homepage: https:\/\/www.lezaiyun.com\/toslug.html<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Download the plugin zip file.<\/li>\n<li>In WordPress admin, go to Plugins \u2192 Add New.<\/li>\n<li>Click Upload Plugin.<\/li>\n<li>Select the zip file and install it.<\/li>\n<li>Activate the plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20changing%20url%20slugs%20affect%20seo%3F\"><h3>Will changing URL slugs affect SEO?<\/h3><\/dt>\n<dd><p>Yes, it can. Changing an existing post slug changes its public URL. Back up your database before using \u201cReset existing slugs\u201d or bulk-processing all posts.<\/p><\/dd>\n<dt id=\"which%20post%20types%20are%20supported%3F\"><h3>Which post types are supported?<\/h3><\/dt>\n<dd><p>Post, Page, and other public custom post types can be selected on the settings page. Attachment is not listed.<\/p><\/dd>\n<dt id=\"if%20%E2%80%9Creset%20existing%20slugs%E2%80%9D%20is%20disabled%2C%20will%20old%20posts%20be%20changed%3F\"><h3>If \u201cReset existing slugs\u201d is disabled, will old posts be changed?<\/h3><\/dt>\n<dd><p>No. The plugin only generates slugs for new posts, or posts that are still auto-drafts \/ have an empty slug. Existing content keeps its slug during normal edits.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Load admin JavaScript and CSS via wp_enqueue_script \/ wp_enqueue_style<\/li>\n<li>Remove inline script and style attributes from the settings page<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Fix: New posts with a title-based slug were not always replaced<\/li>\n<li>Refactor: Use wp_insert_post_data instead of a recursive wp_unique_post_slug filter and a second save_post update<\/li>\n<li>Add: _toslug_generated meta to distinguish new posts from legacy content<\/li>\n<li>Add: Slug preview on the settings page and a confirm dialog for bulk \u201cprocess all\u201d<\/li>\n<li>Coding standards: Escaping, wp_safe_redirect, Domain Path, uninstall.php<\/li>\n<li>Improve: Bulk processing uses an ID cursor; remove unnecessary rewrite flush and full cache flush<\/li>\n<li>Exclude the attachment post type<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Bump version to 1.1.1<\/li>\n<li>Add slug length setting (8-32)<\/li>\n<li>Add supported post types setting (Post \/ Page \/ CPT)<\/li>\n<li>Align automatic generation and bulk processing for multiple post types<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Bump version to 1.1.0<\/li>\n<li>Improve random slug generation with a more reliable entropy source<\/li>\n<li>Add unified uniqueness handling via wp_unique_post_slug<\/li>\n<li>Fix possible recursive save_post updates<\/li>\n<li>Add sanitize callbacks and whitelist validation for settings<\/li>\n<li>Improve bulk processing validation and failure reporting<\/li>\n<li>Process bulk updates in batches for large sites<\/li>\n<li>Standardize text domain to toslug<\/li>\n<\/ul>","raw_excerpt":"Automatically generate random or MD5-style WordPress post URL slugs.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/385221","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=385221"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/laobuluo"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=385221"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=385221"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=385221"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=385221"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=385221"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=385221"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}