Musilda.cz

Vlastní statusy pro články

Máte vlastní magazín, či web, na kterém pracuje více uživatelů a potřebujete přidat ke článkům statusy, které ve WordPressu nejsou? V dnešním článku si ukážeme, jak na to.

Typický příklad je obsáhlý web, na němž se podílí více uživatelů, v různých rolích. Někdo může být autor, někdo dělá korekci článků, kontroluje pravopis, vhodnost článku, či jej konečně schválí. V takovém případě je důležité dát tomu, kdo bude na článku pracovat po vás, vědět, jaký status právě má. A proto se hodí mít možnost vytvoření vlastních statusů článků.

Pro mé potřeby jsem si připravil následující statusy:

Jako první si přidáme rozbalovací výběr statusů do metaboxu v detailu příspěvku:

add_action( 'post_submitbox_misc_actions', 'custom_status_metabox' );

Post submit box, je metabox, kde nastavujete publikaci článků. Přidáme kód pro zobrazení selectu:

function custom_status_metabox(){
global $post;
$custom  = get_post_custom($post->ID);
if(!empty($custom["_status"])){
$status  = $custom["_status"][0];
}
$i   = 0;
$custom_status = array(
'Pravopisné chyby',
'Korekce',
'Zamítnuto',
'Schváleno',
);
$html  = '
‚; $html .= ‚‚; $html .= ‚
'; 
echo $html; 
}

Výsledek:

Uložíme hodnotu výběru:

add_action('save_post', 'save_status');
function save_status(){
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE){ return $post->ID; }
if(!empty($_POST["status"])){
update_post_meta($post->ID, "_status", $_POST["status"]);
}
}

Vytvoříme styly pro barevné označení statusu:

add_action( 'admin_head', 'status_css' );
function status_css() {
echo '';
}     

Pokud bych měl jít do detailu, bylo by vhodné pomocí podmínky omezit výpis stylu jen na stránku s příspěvky. Takto se zobrazí v hlavičce administrace pokaždé.
Po uložení statusu, se zobrazí jeho název za názvem příspěvku. Pokud má příspěvek nějaký defaultní WordPress status, zobrazí se ten náš až za ním.

Exit mobile version