在帖子保存过程中更改帖子标题

时间:2012-10-05 作者:ktsixit

我的主题和Qtranslate插件有冲突,并在我网站的帖子标题上引起了许多问题。我无法追踪问题的原因,我想我可以自己保存标题。

我希望能够更改wordpress在从后端保存帖子时使用的帖子标题。

我该怎么做?

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

你可以加入wp_insert_post_data 改变现状。

<?php
add_filter(\'wp_insert_post_data\', \'wpse67262_change_title\');
function wpse67262_change_title($data)
{
    $data[\'post_title\'] = \'This will change the title\';
    return $data;
}
很明显,你需要做一些检查,这样你就不会更改每个帖子的标题。每次保存帖子(添加新帖子、更新、删除帖子等)以及针对每种帖子类型,该钩子都会触发。$data 是一个关联数组,其中包含在{$wpdb->prefix}_posts 表作为键。所以,如果你只是想换帖子:

<?php
add_filter(\'wp_insert_post_data\', \'wpse67262_change_title\');
function wpse67262_change_title($data)
{
    if(\'post\' != $data[\'post_type\'])
        return $data;

    $data[\'post_title\'] = \'This will change the title\';

    return $data;
}

结束

相关推荐

是否始终将自定义字段设置为.get_the_title()?

有没有办法让the_title() 标记还包括一个名为subtitle?的自定义字段?我想要这样的标题:“字幕自定义字段:帖子标题”。例如,“酷:沃纳·赫尔佐格的新电视节目”在这种情况下,cool将是自定义字段值,而新TV将是the_title().我现在通过以下代码获得此信息:<h1><?php $values = get_post_custom_values(\"myCustomField\"); echo $values[0]; ?>: <?php the_title(