如何在后保存时截取帖子标题

时间:2012-12-10 作者:ded syd

我是WP的新手,我自己找不到这个解决方案。

这是我的职责,

function explodetitletotags() {

    global $post;

    $title = $post->post_title;

    $tags = explode(\' \', preg_replace(\'/[^\\p{L}0-9 ]/\', \' \', $title)); 

    foreach $tags as $tag {

        global $post;

        $thePostID = $post->ID;

        wp_add_post_tags($thePostID, $tag);

    }

}

add_action(\'publish_post\', \'explodetitletotags\');

除了When the post title in the new single post page updated, 标题总是给出以前的值,而不是上次我在输入标题框中键入的值。

我的假设是,$title = $post->post_title; 在我的函数中,从数据库中调用旧版本的标题,而不是新版本,我想为什么不在标题发送到数据库之前抓取它,以便标题始终是最新版本,这样可以吗?

如果是,在将wordpress保存到wp\\U posts表数据库之前,是否有方法在Post保存时拦截/捕获wordpress?

我很抱歉我的英语,因为它不是我的第一语言,谢谢你的帮助。

1 个回复
SO网友:fuxia

要在保存标题之前设置标题,请钩住wp_insert_post_data:

add_filter( \'wp_insert_post_data\', \'wpse_75597_change_title\' );

function wpse_75597_change_title( $post_data )
{
    $post_data[\'post_title\'] = \'SOMETHING VERY LOUD\';

    return $post_data;
}

结束

相关推荐

populate array with posts

我想生成一个自定义帖子类型的数组,将其添加到选项数组中。我这样做是为了显示一个由自定义帖子类型填充的复选框组。我有这个阵列:\'options\' => array ( \'one\' => array ( \'label\' => \'Option One\', \'value\' => \'one\' ), \'two\' => array (