问题描述
我想在”Publish” 按钮附近的某个地方添加自定义按钮 “发送修正” 。此自定义按钮必须将帖子状态从”Pending” 更改为我自己创建的名为”On correction” 的状态。
现在可以通过 5 次点击更改状态 (编辑状态 – > 下拉单击 – > 选择 On-correction – > Ok – > 另存为更正) 。
更新:
add_action('post_submitbox_misc_actions', 'send_for_correction_button');
function send_for_correction_button()
{
//global $post;
echo '<div id="send-for-correction" class="misc-pub-section"
style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">
<input id="save-post2" class="button button-highlighted"
type="submit" value="Send for correction" name="save">
</div>';
}
add_action('save_post', 'save_status');
function save_status($post_id)
{
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return $post_id;
if ($_POST['save'] == 'Send for correction')
{
update_post_meta($post_id, "post_status", 'on-correction');
}
}
最佳解决方案
您可以在函数中创建自定义按钮并将其挂接到 post_submitbox_misc_actions
中,并将其添加到发布按钮的正上方。
要更改状态,请在 Ajax 函数中使用 wp_update_post 。如果遇到任何问题,请尝试并发回您的代码。
更新:
add_action('post_submitbox_misc_actions', 'send_for_correction_button');
function send_for_correction_button()
{
//global $post;
echo '<div id="send-for-correction" class="misc-pub-section"
style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">
<input id="save-post2" class="button button-highlighted"
type="submit" value="Send for correction" name="save">
</div>';
}
add_filter( 'wp_insert_post_data' , 'my_filter_handler' , '99', 2 );
function my_filter_handler( $data , $postarr )
{
if ($postarr['save'] == 'Send for correction')
$data['post_status'] = 'on-correction';
return $data;
}
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。