将自定义帖子类型标题设置为帖子的日期

时间:2011-04-28 作者:Zack Austin

我有一个自定义的帖子类型,叫做“status”,并且我在帖子类型中禁用了“title”。现在,它正在将所有帖子的标题设置为“自动草稿”。我想设置一种方法,将标题设置为帖子的日期。我想我应该使用“wp\\u insert\\u post\\u data”。现在我正在使用以下代码,但它不起作用:

function status_title_filter( $data , $postarr )
{

if ($postarr[\'post_type\'] == \'status\'){
    $date = $data[\'post_date\'];
    $data[\'post_title\'] = $date;
}
return $data;
}

add_filter( \'wp_insert_post_data\' , \'status_title_filter\' , \'99\' );
提前感谢您解决了我的简单问题。说到这类事情,我是个新手。

3 个回复
SO网友:Ian Dunn

不管法典怎么说,postarr美元并不总是被传递进来,所以你应该只使用$数据$然而,data不是一个有意义的变量名,所以我更喜欢$cleanPost。我也会尝试删除过滤器上的优先级,因为它通常不是必需的。设置slug也是一个好主意(post_name) 除了标题之外,还要避免在自动草稿和垃圾/非垃圾操作上运行代码。看看这是否有效:

function status_title_filter( $cleanPost )
{
    if( $cleanPost[\'post_type\'] == \'status\' && $cleanPost[\'post_status\'] != \'auto-draft\' && $_GET[\'action\'] != \'trash\' && $_GET[\'action\'] != \'untrash\' )
        $cleanPost[\'post_title\'] = $cleanPost[\'post_name\'] = $cleanPost[\'post_date\'];

    return $cleanPost;
}

add_filter( \'wp_insert_post_data\', \'status_title_filter\' );
<小时>Update: 我认为您没有看到$postarr的原因是,默认情况下,操作回调只接受一个参数。如果您想要更多,则必须在挂钩中指定,如add_action( \'wp_insert_post_data\', \'my_callback_function\', 10, 2). 这将把优先级设置为10,参数数量设置为2。

SO网友:Lea Cohen

有一个插件可以做到这一点-datetitle. 也许你可以看看那里的代码,知道怎么做。

SO网友:rexposadas

我知道很晚了,但你可以在创建帖子之前将标题设置为postdate。

$postarr[\'title\'] = current_time(\'mysql\');
$postarr[\'post_type\'] = \'myposttype\';
wp_insert_post($postarr);
HTH公司

结束

相关推荐

WP Subtitle Plugin Problem

我在使用WP字幕插件时遇到了一些问题。插入后<?thesubtitle()?> 或<?getthe_subtitle($id)?> 进入索引。php模板我收到一个“调用未定义函数”错误-循环内部或外部似乎都无关紧要!提前感谢//更新在大多数页面中,由于toscho更新了语法,以下内容现在可以正常工作<?php get_header(); ?> <div class=\"title-posts-container\"> <h2