Wordpress更新按钮工作但不发布按钮

时间:2015-03-26 18:57:05

标签: wordpress

我让程序员自动将每个帖子的标题选为所选日期和所选地点(以便用户节省一些时间)。当我点击发布'帖子的标题是日期两次(即03-26-15 03-26-15)。然后发布'按钮变成了“更新”。按钮。然后当我点击更新'标题是正确的(即; 03-26-15伦敦)。我点击“发布”后试图弄清楚如何以这种方式获取它。第一次。程序员消失了,我无法弄清楚。任何帮助都会很棒。

function post_updated($ post_id){

global $post_type;
if ($post_type == 'place') {
    if ( !wp_is_post_revision( $post_id ) && !(defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE) ) {
        $postTitle.=get_the_date( 'm/d/Y', $post_id );
        $postTitle.=" ".get_the_title(get_post_meta($post_id, 'place_locale', true) ) ;

        $post['ID'] = $post_id;
        $post['post_title'] =  $postTitle;

        remove_action( 'save_post', 'post_updated' );
        wp_update_post($post);
        add_action( 'save_post', 'post_updated' );
    }
}

}

add_action(' save_post',' post_updated');

3 个答案:

答案 0 :(得分:0)

.=运算符附加,因此您的标题正在重复。 只需将其更改为=即可。

答案 1 :(得分:0)

您确定这是唯一功能吗?似乎只有“更新后”代码。

使用wp_insert_post处理帖子创建,例如:

$my_post = array(
'post_title'    => $title,
'post_content'  => "",
'post_status'   => "pending",
'post_author'   => wp_get_current_user()->ID
);

$post_id = wp_insert_post( $my_post );

答案 2 :(得分:0)

旧问题,但这可以帮助谁提出这个问题:
代码存在一些问题:

    未定义
  1. global $post_type
  2. 如@dojs所述,应首先使用=运算符而不是.=来定义变量。
  3. get_the_title()函数仅接受post_id或post对象作为参数。
  4. 由于您要处理的是place的自定义帖子类型,因此最好使用post type specific hook而不是普通且拥挤的save_post挂钩。

经过这些修改,最终代码可能是这样的:

function tst_post_updated( $post_id )
{
    if ( !wp_is_post_revision( $post_id ) && !(defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE) ) {

        $post_title = get_the_date( 'm/d/Y', $post_id );
        $post_title .= " " . get_post_meta($post_id, 'place_locale', true);
        $post_title = sanitize_title($post_title);

        $post['ID'] = $post_id;
        $post['post_title'] =  $post_title;

        remove_action( 'save_post_place', 'tst_post_updated' );
        wp_update_post($post);
        add_action( 'save_post_place', 'tst_post_updated' );
    }
}

add_action( 'save_post_place', 'tst_post_updated' );