如何检索分配给当前正在编辑的帖子的最新类别



我需要在编辑时限制属于特定类别的帖子的帖子磁贴长度。因此,我需要检查已为正在编辑的帖子分配了哪些类别,并决定是否限制其帖子标题。

我使用"wp_insert_post_data"来完成工作

add_filter( 'wp_insert_post_data' , 'limit_title_length' , '99', 2 );

但我发现从传递的$postarr返回的类别是现有类别。不是最新的类别。因此,它不适用于新帖子或在编辑时更改类别。

$post_category = $postarr['post_category'];

我还检查了函数内部的get_the_category(),如果类别分配发生变化,它还返回现有类别,而不是最新类别。

到目前为止我的代码...

function limit_title_length( $data,  $postarr ) {
// set up variables like max length, category id to limit
...
// get post id, title and categories from $data and $postarr passed
    $title =  $data['post_title'];
    $id = $postarr['ID'];
    $post_category = $postarr['post_category'];
// check if the specified category exists in the categories assigned to this post
...
// process $title, reset $post_title in $data 
...
    $data['post_title'] =  $title;
    return $data;
}
add_filter( 'wp_insert_post_data' , 'limit_title_length' , '99', 2 );

wp_insert_post_data在发布后期阶段大火。我希望从$postarr['post_category'];获得最新的类别但这不是我的情况。有什么解决方案或替代方案吗?

所以要清楚 - 您想确定添加到帖子的最新类别吗?

如果是这种情况,您将很难这样做,因为 Wordpress 不会为添加的类别保存元。如果您足够熟练,则可以编写此类函数的脚本并将数据保存在自定义表中。然后检索它以供使用。

如果您知道要查找的类别的名称,则可以使用has_category!

.

相关内容

最新更新