2つのカスタム投稿ステータスを作成しようとしています。私はCodexを使ってコードを生成しましたが、うまくいきませんでした。それから私は http://generatewp.com/post-status に行きました、そしてそれはどちらもうまくいきませんでした。 [投稿の編集]の[ステータス]の横にあるドロップダウンには表示されません。
私のコードに何か問題がありますか。
// ***** http://generatewp.com/post-status **** //
function custom_post_status() {
$args = array(
'label' => 'Reserve',
'label_count' => 'Reserve (%s)',
'public' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'exclude_from_search' => false,
);
register_post_status( 'Reserve', $args );
}
add_action( 'init', 'custom_post_status', 0 );
function custom_post_status_2() {
$args = array(
'label' => 'Ready to be Scheduled',
'label_count' => 'Ready to be Scheduled (%s)',
'public' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'exclude_from_search' => false,
);
register_post_status( 'Ready to be Scheduled', $args );
}
add_action( 'init', 'custom_post_status_2', 0 );
ありがとうございました!
post statusの値はコアにハードコードされているようです。 これはステータスボックスコードです 編集画面の場合:
<span id="post-status-display">
<?php
switch ( $post->post_status ) {
case 'private':
_e('Privately Published');
break;
case 'publish':
_e('Published');
break;
case 'future':
_e('Scheduled');
break;
case 'pending':
_e('Pending Review');
break;
case 'draft':
case 'auto-draft':
_e('Draft');
break;
}
?>
</span>
コーデックスは :と言います
注意:この機能は、登録された投稿ステータスを管理パネルに追加しません。この機能は将来の開発が保留されています。 Tracのチケット#12706を参照してください。このパラメータを追加するためのアクションフックpost_submitbox_misc_actionsを考えてください。
#12706 チケットは5年前に作成されました!
だから私はこれが現在コアでサポートされているとは思わない。
手動で投稿のステータスを登録済みのカスタム投稿ステータスに変更すると、edit.php
画面のタブに表示されます。
Codexの例を試してみると、
function my_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', 'my_custom_post_status' );
そして投稿の投稿ステータスを手動でunread
に変更すると、その投稿のステータスは not になりメタボックスに表示されます。
一方、edit.php
画面のタブに表示されます。
Add_actionの優先順位を1に変更して、問題が解決するかどうかを確認します。
私の知る限りでは、優先順位は1から99までの整数でなければなりません。
0または100+を使用してください、そして、私はあなたの行動がこれまでに発生するとは思わない。
また、登録されているステータスの名前を、存在するものと一致するように変更することをお勧めします(たとえば、スペースなしでおそらくすべて小文字、おそらく短い)。
register_post_status( 'reserve', $args );
register_post_status( 'ready', $args );
あなたのラベルはそれらをきちんと見えるようにするでしょう。