Povinné vložení náhledového obrázku u příspěvku

V minulém článku jsem se věnoval tomu, jak vylepšit vzhled administrace, pokud na webu pracuje více lidí. Dnes budu pokračovat v podobném duchu. Ukážeme si, jak přinutit uživatele, aby ke článku vždy přiložil náhledový obrázek.

Jak by nám jistě potvrdila řada provozovatelů magazínů, lidé jsou chybující a často je jednotný vzhled je tak „rozbitý“ chybějícím obrázkem.

V návodu využijeme dvou akcí – save_postadmin_notices. První se volá, když se článek ukládá a druhá se volá, při kontrole chybových hlášení.

Nejprve přidáme do hooku funkci:

add_action('save_post', 'musilda_control_thumbnail');

Ve funkci samotné nejprve zkontrolujeme, zda jde o post, tedy článek. Obdobně můžeme funkci rozšířit, nebo upravit pro jiné druhy obsahu. Poté zkontrolujeme, zda má článek náhledový obrázek. Pokud ano, pro jistotu odstraníme zápis
chyby, pokud ne, vytvoříme chybové hlášení.

Následně odstraníme funkci z hooku, protože jinak se nám funkce zacyklí a bude se neustále volat. Uložíme článek jako draft.

function musilda_control_thumbnail($post_id){
  if(get_post_type($post_id) != 'post')
  return;
 
  if ( !has_post_thumbnail( $post_id ) ) {
    set_transient( "has_post_thumbnail", "no" );
    remove_action('save_post', 'musilda_control_thumbnail');
    wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
  }else{
    delete_transient( "has_post_thumbnail" );
  }
}
Čtěte  Přidání javascriptu a externího stylu do šablony - správný způsob
if ( !has_post_thumbnail( $post_id ) ) { set_transient( "has_post_thumbnail", "no" ); remove_action('save_post', 'musilda_control_thumbnail'); wp_update_post(array('ID' => $post_id, 'post_status' => 'draft')); }else{ delete_transient( "has_post_thumbnail" ); } }

Nyní musíme připravit chybovou hlášku. Připravíme si funkci do hooku:

add_action('admin_notices', 'musilda_error');

Ve funkci pak zkontrolujeme existenci hodnoty a vytvoříme html kód s chybou:

function musilda_error(){
  if ( get_transient( "has_post_thumbnail" ) == "no" ) {
  echo "<div id='message' class='error'>
          <p>
            <strong>Příspěvek musí mít náhledový obrázek!</strong>
          </p>
        </div>";
delete_transient( "has_post_thumbnail" );
  }
}

Při pokusu o publikaci, se článek nepublikuje a zobrazí se hláška:
Upravit příspěvek ‹ Woo Canvas – WordPress

Samozřejmě, že nejste omezeni jen na náhledový obrázek, můžete kontrolovat například existenci custom fieldů.

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Related posts

Leave a Reply

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Chcete mít přehled o dění ve světě WordPressu?

Přímo do vašeho emailu

Pravidelný přehled o novinkách, trendech a událostech, které se točí kolem WordPressu. Souhrn toho nejzajímavějšího od nás i ze zahraničí.