Vlastní statusy pro články - Affinite.io CZ

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:

  • Nekontrolováno
  • Pravopisné chyby
  • Zamítnuto
  • Schváleno

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 .= ‚
Nekontrolováno
‚; $html .= ‚
—————–
‚; for($i=0;$i<count($custom_status);$i++){ if($status == $custom_status[$i]){ $html .= ‚
‚. $custom_status[$i].‘
‚; }else{ $html .= ‚
‚.$custom_status[$i].‘
‚; } } $html .= ‚
‚; $html .= ‚
';
echo $html;
}

Výsledek:
Upravit příspěvek

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 '
.custom_status{
font-size:9px;
color:#666;
background:#e5e5e5;
padding:3px 6px 3px 6px;
-moz-border-radius:3px;
}
.pravopisne-chyby{background:#CB4BEB;color:#fff;}
.zamitnuto{background:#FF0000;color:#fff;}
.source{background:#D7E01F;color:#333;}
.schvaleno{background:#DE9414;color:#333;}
';
}

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.
Příspěvky

Zobrazení celkové váhy ve výpisu objednávek Woocommerce
Zobrazení celkové váhy ve výpisu objednávek Woocommerce
05 Srp, 2014
Povinné vložení náhledového obrázku u příspěvku
Povinné vložení náhledového obrázku u příspěvku
07 Srp, 2014

Komentáře nejsou povoleny.

Looking for something?