WordPress 固定链接标题别名自动转换 MD5 码
更新时间:2018-10-06 分类:设计主题 浏览量:2788
WordPress 固定链接有多种方式,其中有不少人喜欢设置格式为文章标题所为固定链接形式。使用文章标题作为固定链接形式,英文还好,如果是中文,则需要手动修改链接别名,否则会变成长长的中文转码,很不好看。当然,也可以采用自动翻译标题为别名的插件,但是,由于自动翻译会拖慢整个 WordPress 网站。如果觉得固定链接为标题形式比较麻烦,比如,本博客的就以文章 ID 为固定链接形式。固定链接的地址设置为 post_id 也有一个弊端,几乎空间每出一次问题,ID就会换上一次,对Google搜索的收录很不好。因此,有位达人写了个插件,采用标题的 MD5 码作为固定链接形式,这样子,只要标题不同撞车的机率非常少。
插件功能:
- 只对博客日记的固定链接进行修改,修改页面的固定链接。
- 支持通过网页添加的日记和通过XML-RPC发布的日记。
作者:宇托 博客:宇托的狗窝
插件截图:
编辑界面:
浏览器界面:
下载地址:作者博客 | WordPress 插件
集成主题,把下面的代码加入 function.php 文件中
if (!class_exists('wp_slup_md5code')):
class wp_slup_md5code {
var $post_title = '';
var $post_type = '';
function wp_slup_md5code() {
global $wp_version;
add_filter('type_save_pre', array(&$this, 'get_post_type'), 0);
add_filter('title_save_pre', array(&$this, 'get_post_title'), 0);
add_filter('name_save_pre', array(&$this, 'set_post_name'), 0);
if ($wp_version > 2.4 && strpos($_SERVER['REQUEST_URI'], 'admin-ajax.php') > 0
&& $_POST['action'] === 'sample-permalink') {
add_filter('sanitize_title', array(&$this, 'w25_ajax_slug'), 0);
register_shutdown_function(array(&$this, 'w25_ajax_remove'));
}
}
function get_post_type($type) {
$this->post_type = $type;
return $type;
}
function get_post_title($title) {
$this->post_title = $title;
return $title;
}
function set_post_name($name) {
if (strcmp('post', $this->post_type) == 0) {
$name = $this->md5_encoding($this->post_title);
}
return $name;
}
function w25_ajax_slug($name) {
remove_filter('sanitize_title', array(&$this, 'w25_ajax_slug'), 0);
if (strcmp('post', $_POST['post_type']) == 0) {
$name = $this->md5_encoding($_POST['new_title']);
}
add_filter('sanitize_title', array(&$this, 'w25_ajax_slug'), 0);
return $name;
}
function w25_ajax_remove() {
remove_filter('sanitize_title', array(&$this, 'w25_ajax_slug'), 0);
}
private function md5_encoding($str) {
$str = trim(strip_tags($str));
if (strlen($str) == 0) {
return $str;
}
$str = mb_convert_encoding($str, 'UTF-8');
$md5_str = md5($str);
$md5_str = substr($md5_str, 8, 16);
return $md5_str;
}
}
endif;
$wp_slup_md5code = new wp_slup_md5code();