Wordpress 自定义post状态未出现
我正在为我的一个客户端构建一个目录主题,我喜欢通过将帖子状态从publish修改为expired,在帖子中添加过期功能 为了实现这一点,我尝试使用以下代码注册一个新的post状态:Wordpress 自定义post状态未出现,wordpress,wordpress-theming,Wordpress,Wordpress Theming,我正在为我的一个客户端构建一个目录主题,我喜欢通过将帖子状态从publish修改为expired,在帖子中添加过期功能 为了实现这一点,我尝试使用以下代码注册一个新的post状态: add_action('init', 'registerStatus', 0); function registerStatus() { $args = array( 'label' => _x('Expired', 'Status Ge
add_action('init', 'registerStatus', 0);
function registerStatus()
{
$args = array(
'label' => _x('Expired', 'Status General Name', 'z' ),
'label_count' => _n_noop('Expired (%s)', 'Expired (%s)', 'z'),
'public' => true,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'exclude_from_search' => true
);
register_post_status('expired', $args);
}
问题是我无法在WordPress帖子中看到注册帖子的状态,也无法在我的自定义帖子类型帖子状态中看到注册帖子的状态
我做错什么了吗?自定义帖子状态功能仍在开发中(与过去四年一样!),请参阅,并发表评论。更多有用信息请点击此处: 就个人而言,我强烈反对实现自定义post状态,但如果真的有必要,您可以看看插件是如何处理的。此功能非常有用 注意: 此函数不向管理面板添加已注册的post状态。此功能有待于将来的开发。请参阅。考虑添加这个参数的动作钩子。
现在是2014年11月,仍然存在自定义状态问题。我认为发布的原始代码很好。下面是一个视频,显示了在实现自定义post状态时遇到的问题。可能有一个解决方法,即挂接posts查询并执行自定义查询,但我还没有开始研究 我在制作新的WTG任务管理器插件时拍摄了该屏幕。我将把我的设计留在插件中,希望它能帮助鼓励WordPress在这方面的改进 为了得到正确的答案…我的自定义状态会显示在编辑帖子屏幕上,以显示我的自定义帖子类型,因此这是可能的。如果您想查看自定义帖子类型和状态的我的插件注册,请转到目录“posttypes/tasks.php”并使用一个工作示例。这是插件的官方页面
多亏了Ryan Bayne,我才能够在编辑帖子页面的管理面板中添加自定义帖子状态。没有可用的wordpress筛选器。他的jQuery解决方案是完美的。如果其他任何人正在搜索解决方案,则代码如下:
add_action( 'post_submitbox_misc_actions', 'my_post_submitbox_misc_actions' );
function my_post_submitbox_misc_actions(){
global $post;
//only when editing a post
if( $post->post_type == 'post' ){
// custom post status: approved
$complete = '';
$label = '';
if( $post->post_status == 'approved' ){
$complete = 'selected=\"selected\"';
$label = '<span id=\"post-status-display\"> Approved</span>';
}
echo '<script>'.
'jQuery(document).ready(function($){'.
'$("select#post_status").append('.
'"<option value=\"approved\" '.$complete.'>'.
'Approved'.
'</option>"'.
');'.
'$(".misc-pub-section label").append("'.$label.'");'.
'});'.
'</script>';
}
}
add_action('post_submitbox_misc_actions'、'my_post_submitbox_misc_actions');
函数my_post_submitbox_misc_actions(){
全球$员额;
//仅当编辑帖子时
如果($post->post\u type=='post'){
//自定义职位状态:已批准
$complete='';
$label='';
如果($post->post_status=='approved'){
$complete='selected=\'selected\';
$label=‘已批准’;
}
回显“”。
'jQuery(document).ready(函数($){'。
“$”(“选择#发布状态”)。追加(”。
'"'.
“批准”。
'"'.
');'.
“$(“.misc-pub-section-label”).append(“.$label.”)。
'});'.
'';
}
}
在WP 4.8.2中,您必须更改$label='Approved'代码>至$label='Approved'代码>和'$(“.misc pub section label”)。附加(“.$label.”)代码>至<代码>'$(“.misc pub section#post status display”)。附加(“.$label.”)代码>。仅供参考:强烈建议采用编辑流。我能够轻松地添加额外的职位状态,我的自定义职位类型后,花了1个多小时没有取得任何进展与自定义代码!