如果您熟悉PHP,那么就可以跟踪slug的更新时间。我能想到的唯一方法是有点复杂:
确保为您的安装和目标帖子类型启用了修订。您必须确定要保存多少修订,这将是您认为有人可能会更改帖子的次数(无论是一个小改动,还是内容,或帖子的任何内容)与您允许数据库使用所有这些额外数据变得多臃肿之间的平衡。
为Posteta字段添加版本控制,您将使用该字段跟踪每个版本的slug。首先安装插件“WP-Post-Meta-Revisions.“然后,在自定义插件或子主题中functions.php
文件:
add_filter(\'wp_post_revision_meta_keys\', \'wpse_track_slug_postmeta\');
function wpse_track_slug_postmeta() {
// Access the array of postmeta keys that is already versioned
global $versionedKeys;
// Add your custom postmeta key to the array
$versionedKeys[] = \'versionedSlug\';
// Pass the array back to WordPress
return $versionedKeys;
}
完成此操作后,每次保存修订时,都会保存该特定修订的postmeta“versionedSlug”。
每次保存修订时,您都需要告诉WP将slug保存为“versionedSlug”后的版本。您可以使用wp_insert_post
挂钩:
// Every time WP inserts a post, run this function
add_action(\'wp_insert_post\', \'wpse_save_slug_postmeta\');
function wpse_save_slug_postmeta($post_id, $post, $update) {
// Make sure this is a revision
if(wp_is_post_revision($post_id)) {
// Save the slug as postmeta
// First parameter is the post ID of the revision
// Second parameter is what you want to call this postmeta key
// Third parameter is what you\'re saving - the slug itself
update_post_meta($post->ID, \'versionedSlug\', $post->slug);
}
}
然后,您必须决定如何访问此数据。如果您只想浏览帖子的修订,修订比较视图将显示slug何时更改,因为它现在显式保存为posmeta。您还可以根据需要创建各种报告或小部件。