WordPress Permalink Manager Plugin

Make sure all TARGET Media is attached to a Page (not a Timeline Event)

   Wordpress calculates the Default URI / Original URL* as WhatEverItIsAttachedTo(IfItIsAttached)/NativeSlug (It is not saved, instead calculated)

   The NativeSlug is stored in the wp_posts.post_name Table.Column, and can be easily modified with a SQL query

"Tag" the desired media (WhatEver1) to change with a custom date (1999-09-13, AKA September 13, 1999) using the Bulk Edit feature of Admin Columns

Use a SQL Query to add / prepend the new custom path (example: recent-history/images/, no leading /, but add the trailing)

Change date back to original or current

Then go to the next desired media and tag it (WhatEver2, 3, etc.) and repeat the above steps (3 lines)

...and after all SQL Modifications; Permalink Manager, Tools, Regenerate / Reset, Mode: Use Original (Default) URLs as custom permalinks

OR, go to debug tab (far right) and wipe all data.

Optional (Not recommended as it can be done via SQL): Permalink Manager, Tools, Regenerate / Reset, Mode: Regenerate Native Slug

*NOTE: Permalink Manager exchanges the use of "Current URI" with "Custom Permalink" in the Regenerate/Reset Tool

   ...and "Default URI" with "Original URLs" too.

Permalinks Manager: Regenerate custom permalinks and Use original URLs as custom permalinks does the same thing

(The Default URI is copied to the Current / Custom URI)

recent-history11/attachment11/salton-sea-stuck-boat-high-res-no-rv-not-as-vivid11

recent-history/attachment/salton-sea-stuck-boat-high-res-no-rv-not-as-vivid22

recent-history11/attachment11/salton-sea-stuck-boat-high-res-no-rv-not-as-vivid11

recent-history/attachment/salton-sea-stuck-boat-high-res-no-rv-not-as-vivid22


one to many

SELECT * FROM wp_posts WHERE post_date='1999-09-13*';

SELECT * FROM wp_posts WHERE post_date LIKE '1999-09-13%';


This works to display: SELECT ID FROM wp_posts WHERE post_date LIKE '1999-09-13%';




This works to insert into another table (clear the TT2 table first)

INSERT INTO TT2 (ID, post_date)
SELECT ID, post_date
FROM wp_posts
WHERE post_date LIKE '1999-09-13%';




SELECT * FROM wp_postmeta WHERE post_id = '2799';
SELECT * FROM wp_postmeta WHERE post_id = (SELECT ID FROM TT2 WHERE ID = '2799');




SELECT * FROM wp_postmeta WHERE post_id = (SELECT ID FROM TT2 WHERE ID = ?);

SELECT * FROM wp_postmeta WHERE post_id = (SELECT ID FROM TT2 WHERE ID LIKE '%');



SELECT *
FROM wp_posts
INNER JOIN wp_postmeta
ON wp_posts.ID = wp_postmeta.post_id
WHERE post_date LIKE '1999-09-13%';



SELECT *
FROM wp_postmeta
INNER JOIN wp_posts
ON wp_posts.ID = wp_postmeta.post_id
WHERE wp_posts.post_date LIKE '1999-09-13%';





set autocommit=0;

COMMIT;
# or if you want to reset changes 
ROLLBACK;


  • Bulk edit date of Media Files to update with this date: 1999-09-13
  • phpMyAdmin: Query Database, Export (at bottom of query, not on Tab) to CSV

SELECT ID FROM wp_posts WHERE post_date='1999-09-13*';

  • Textpad: Remove " characters using ALT & Mouse OR Replace with nothing, Replace, Regular expression Checkbox, Find: \r (carriage return), Replace: ,
  • Clear Temporary Table;

TRUNCATE TABLE LifeOfTheSaltonSea_org_WP.TT2;

  • Save original SLUG Names in Temporary Table;

INSERT INTO LifeOfTheSaltonSea_org_WP.TT2 (ID, post_name)

SELECT ID, post_name

FROM LifeOfTheSaltonSea_org_WP.wp_posts

WHERE post_date LIKE '1999-09-13%';

  • Modify the SLUG (post_name)

UPDATE LifeOfTheSaltonSea_org_WP.wp_posts

SET post_name = CONCAT("recent-history/images/", post_name)

WHERE post_date LIKE '1999-09-13%';

  • THE BELOW IS CURRENTLY NOT WORKING WHEN USING: Use Permalink Manager (Permalink Manager, Tools, Regenerate / Reset, Mode);

Mode: Use Original (Default) URLs as custom permalinks

Select content type: N/A

Select post types: Media

Select post statuses: Published

Select IDs: Use CSVs obtained

Regenerate Button

  • Put original values from the Temporary Table back into the Permanent Table

USE LifeOfTheSaltonSea_org_WP

UPDATE wp_posts

INNER JOIN TT2 ON (wp_posts.ID = TT2.ID)

SET wp_posts.post_name = TT2.post_name;

  • Check the Permanent Table

SELECT * FROM wp_posts WHERE post_date='1999-09-13*';