我正在尝试解决如何在wordpress中向自定义帖子类型添加一组新的发布状态,因为我希望执行以下操作:
用户登录并使用自定义帖子类型填写信息字段完成后,帖子类型应设置为等待批准,并且用户只能查看但不能编辑,然后管理员应能够设置批准的状态(设置此状态后,用户不能编辑帖子)或设置为“需要审阅”,然后用户只能按其应该的方式再次编辑此帖子返回到等待批准和最后拒绝,这会阻止用户编辑帖子并保持仅可查看状态。
我需要了解的是,是否可以删除或编辑默认的发布框选项来添加我自己的状态,以及如何将帖子设置为上述状态。
任何帮助或给我指出正确的方向都是非常好的,因为我做了很多谷歌搜索,但没有找到任何能告诉我实现这一目标的方法。
谢谢
下面是我正在努力工作的代码。我将其设置为当帖子更改为发布时,它应该允许我运行wp\\u update\\u帖子,但我遇到以下错误:
正在尝试在/Applications/MAMP/htdocs/wordpress/wp includes/capabilities中获取非对象的属性。php在线207
function wpdocs_run_on_publish_only( $new_status, $old_status, $post )
{
if ( ( \'publish\' == $new_status && \'publish\' !== $old_status )
&& \'cbre_access_form\' == $post->post_type)
{
$my_post = array(
\'ID\' => $post->post_ID,
\'post_title\' => \'This is the post new title.\',
\'post_content\' => \'This is the new content.\',
\'post_status\' => \'awaiting_review\',
);
wp_update_post( $my_post );
}
}
add_action( \'transition_post_status\', \'wpdocs_run_on_publish_only\', 10, 3 );
SO网友:jgraup
你读过吗Custom Status 在codex上。wordpress。组织/Post\\u状态?
注意:此函数不会将registered post状态添加到管理面板。此功能尚待将来开发。请参阅Trac Ticket #12706. 考虑行动挂钩post_submitbox_misc_actions
用于添加此参数。
将自定义状态添加到WordPress是通过register_post_status()
作用此函数允许您定义post状态及其在WordPress中的操作方式。
function custom_post_status(){
register_post_status( \'unread\', array(
\'label\' => _x( \'Unread\', \'post\' ),
\'public\' => true,
\'exclude_from_search\' => false,
\'show_in_admin_all_list\' => true,
\'show_in_admin_status_list\' => true,
\'label_count\' => _n_noop( \'Unread <span class="count">(%s)</span>\', \'Unread <span class="count">(%s)</span>\' ),
) );
}
add_action( \'init\', \'custom_post_status\' );
虽然管理员中不支持自定义帖子状态
publish metabox 但也许在将来
patch.