如何运行此代码一次,以使我生成的帖子标题不会在发布/更新时不断更改?

时间:2012-07-25 作者:Andrew

我有一个自定义的帖子类型,叫做transaction, 在帖子类型的编辑/发布屏幕上,我删除了帖子标题字段。文章标题现在由下面的函数生成,该函数用于标记每篇文章Transaction 后跟唯一的字符串,这要感谢uniqid PHP函数。

我正在title_save_pre 过滤,但每次我更新帖子时,都会为标题生成一个新的唯一编号。

如何修改下面的代码,使标题的唯一编号只生成一次?

function transaction_title( $title ) {

  $screen = get_current_screen();
  $transaction_number = uniqid(); // unique number

  if ( \'transaction\' == $screen->post_type ) {
     return \'Transaction \'. $transaction_number;
  } else {
    return $title; // else return the normal title
  }
}
add_filter( \'title_save_pre\', \'transaction_title\');
我最初的想法是设置一个后元标志like this 但我很难将它与我的功能结合起来。似乎只有在我使用transition_post_status 与我的title_save_pre 过滤器(我需要更改标题)。

2 个回复
最合适的回答,由SO网友:kaiser 整理而成
function transaction_title( $title )
{


    if ( \'transaction\' == get_current_screen()->post_type && \'\' == $title )
    {
        return \'Transaction \'.uniqid();
    }
    // else return the normal title
    else 
    {
        return $title;
    }
}
add_filter( \'title_save_pre\', \'transaction_title\' );
SO网友:RRikesh

您是否尝试过使用wp_insert_post_data() ? 这question 也可能对您有所帮助。

结束

相关推荐

Disallow Same Post Title

我正在寻找一些代码,其中成员不能使用与另一篇已经拥有或使用的帖子相同的标题。e、 g如果有标题为“神奇澳大利亚之旅”的帖子,则不允许对同一用户或其他用户使用相同的标题。