使用wp_update_post更新帖子标题

时间:2013-12-24 作者:James Jackson

我正在为客户网站的人物页面创建一个自定义帖子类型,该网站的名字和姓氏都有元字段,但我还想将自定义帖子的标题更新为两者的组合(即“firstname lastname”)。

我正在使用wp_update_post 但我遇到了一个问题。当我去更新帖子时,数据被正确更新,但我的光标不断旋转,页面从不重新加载。我想这是因为wp_update_post 正在导致无限save_post 循环,但the recommended fix for this on the wordpress codex 似乎不起作用,我假设调用一个或多个函数的方式有问题。

这是我的代码:

add_action(\'save_post\', \'save_details\');
add_action(\'edit_post\', \'save_details\');

function save_details($post_id){
  global $post;

      if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
              return $post_id;
      }

        update_post_meta($post->ID, "firstname", $_POST["firstname"]);
        update_post_meta($post->ID, "lastname", $_POST["lastname"]);

        if ( ! wp_is_post_revision( $post_id ) ){

            $args = array();
                $args[\'ID\'] = $post_id;
                $args[\'post_title\' ] = implode(\' \', array($_POST["firstname"],$_POST["lastname"]));

            remove_action(\'save_details\',\'save_post\');
                wp_update_post( $args );
            add_action(\'save_details\',\'save_post\');
    }

}   

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

remove\\u action的参数错误,它们应该与add\\u action中使用的参数完全相同,首先应该是挂钩,然后是函数名remove_action(\'save_post\',\'save_details\');

结束

相关推荐

get the_title_attribute by id

我正在创建一个包含几个永久链接的列表<a href=\"<?php echo get_permalink($id); ?>\" title=\".... 我想给你打个电话the_title_attribute(). 但它似乎只能在循环中调用,而不能通过id调用。如何正确获取title属性?注意:我要使用的原因the_title_attributes(); 是因为我在一些标题中使用html标记