如何在帖子标题已存在时获取唯一的元标题(帖子编号)

时间:2013-01-20 07:10:23

标签: wordpress get unique title permalinks

据我所知,如果数据库中已经存在具有相同名称的帖子,WordPress会在永久链接(帖子名称)的末尾自动添加后缀。

但不会在Meta标题的末尾添加后缀,因为它取决于主题。

无论如何我使用论文主题,没有重复的档案元标题元标题,

HOEMPAGE

mydomainname.com =在第1页中,标题为<title>My Homepage Title</title>

mydomainname.com/page/ 2 =在第2页中,标题为<title>My Homepage Title — Page 2</title>

CATEGORY

mydomainname.com/category/category-title =在第1页中,标题为<title>My Category Title</title>

mydomainname.com/category/category-title/page/ 2 =在第2页中,标题为<title>My Category Title — Page 2</title>

代码 它一样,总是动态独特。

越来越多的第3,4,5 ++页标题仍然是唯一的(不重复)自动。

我在博客上使用Thesis主题(公共用户可以在Fropnt End上更新帖子),用户只在前端创建帖子,作者无法访问我的wp-admin CMS和论文“详细信息和附加样式”字段。那么,帖子条目标题怎么样?如何在用户创建具有相同标题的新帖子时获得此功能?

例如,即时尝试如下:

webresepi.com/sambal-udang =首个帖子元标题为<title>Sambal Udang</title>

webresepi.com/sambal-udang-2 =这个帖子标题已存在于我的数据库中,所以我想要这个帖子元标题,如<title>Sambal Udang — 2</title>

当数据库中已存在帖子标题时,从该永久链接中获取数字。

1 个答案:

答案 0 :(得分:-1)

这与faa使用相同的想法,但他的解决方案中有很多很多东西会阻止它工作。使用FTP在文件夹/ wp-content / themes /中找到你的主题,然后把这段代码放在functions.php中:

add_action( 'template_redirect', function() {
if( is_single() ) { // Is a single post
    $slug = basename( $_SERVER['REQUEST_URI'] ); // The slug e.g. sambal-udang-2
    $slug = ucwords( str_replace( '-', ' ', $slug ) );
    add_filter( 'wp_title', function( $title ) use( $slug ) {
        return $slug;
    }); // This filter overrides wp_title which is used to print the meta title. It replaces whatever would we written normally with our edited version of the slug.
}
});

上面的代码假设您的服务器使用PHP 5.3或更高版本。为了支持旧系统,我们需要取消匿名函数:

add_action( 'template_redirect', 'xyz_tmplt_redirect' );

function xyz_tmplt_redirect() {
    if( is_single() ) {
        add_filter( 'wp_title', 'xyz_change_title' );
    }
}

function xyz_change_title( $title ) {
    $slug = basename( $_SERVER['REQUEST_URI'] ); // The slug e.g. sambal-udang-2
    $slug = ucwords( str_replace( '-', ' ', $slug ) );
    return $slug;
}