将WordPress帖子标题动态设置为类别名称

时间:2011-01-06 作者:Dwayne Charrington

我设置了一些自定义的帖子类型。然而,其中一些人将标题字段从编辑屏幕中删除,因为标题在某些方面没有意义。然而,我现在发现所有帖子都被错误地保存为文本“Autosaved Post”或其他内容。

是否可以在将帖子保存为指定的类别名称时设置帖子标题?我之所以要这样做,是因为我正在创建一个带有以下自定义帖子类型的记录标签网站:

艺术家主页旋转木马视频巡演主页旋转木马不需要标题,我希望它可能是以下格式:“Bandname Carousel”Bandname作为类别名称,仅为乐队名称。

我是否应该重新添加标题字段,并使用jQuery设置标题,而不是编写自定义Wordpress插件,并将字段设置为只读,以便用户无法对其进行更改?

我想设置标题的原因是为了阻止向标题添加恼人的“自动保存的帖子”值,从而阻止用户对已添加的帖子进行排序和区分。

1 个回复
最合适的回答,由SO网友:hakre 整理而成

Q: Is it possible to set the post title upon saving the post to be the assigned category name?

A:是的。

每次保存或创建帖子时,都会调用过滤器。您可以挂接到该过滤器中,并将文章标题设置为所需的值。与使用jQuery的解决方案相比,这将确保您的数据是正确的,无论编辑器如何配置其浏览器,或者系统上是否有故障。

如果您想了解更多关于我所说的挂钩的信息,这两个函数是一个很好的起点:wp_update_post()wp_insert_post(). 相关源代码可在中找到/wp-includes/post.php. 您可以在函数代码中找到所有关联的挂钩。

有多个可用,所以我最多只能建议一个。那就是wp_insert_post_data 在里面line 2 531, 您可以通过挂接到该筛选器来更改/设置标题:

add_filter(\'wp_insert_post_data\', function($data, $postarr) {
    /* your job */
    $data[\'post_title\'] = $defaultTitle;
    $return $data;
}, 10, 2);
或者更好的办法是save_post action in line 2 620 因为它已经保存在数据库中,并且可能适用于这两个功能。原理是一样的:您可以自己修改数据。

结束

相关推荐

用于限制访问wp-admin的选项

因此,我安装了一个插件,它允许我为我的用户启用双因素身份验证。问题是,要启用插件,我必须以该用户的身份登录,并通过其配置文件页面(wp admin)启用它。这不是一个问题,只是没有任何东西可以阻止用户登录并禁用双因素身份验证,这是一个问题。我已经研究了一些问题,但似乎没有一个是有效的,本质上我想限制后端访问仅限于少数几个(我自己和少数其他人)。我尝试过隐形登录和一些htaccess解决方案,但似乎都没有奏效。有什么想法吗?