Wymagaj obrazek wyróżniający przed publikacją w WordPress

Wymagaj obrazu wyróżniającego przed publikacją w WordPress

Obrazek wyróżniający wpisu pełni kilka funkcji – Jest przekazywany mediom społecznościowym, zachęca (lub zniechęca) do odwiedzin i zapoznania się z treścią, a np. w przypadku blogów fotograficznych jest wręcz wymagany.

Poniższa Akcja nie opublikuje wpisu, zanim obrazek nie zostanie dodany podczas tworzenia artykułu w WordPressie.

add_action('save_post', 'jcz_sprawdz_obrazek');
add_action('admin_notices', 'jcz_obrazek_brak');

function jcz_sprawdz_obrazek( $post_id ) {
  if( get_post_type($post_id) != 'post' )
      return;
  if(get_post_status($post_id) == 'auto-draft')
      return;
  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
      return;
  if(!isset($_POST['action']))
		return;
  if ( ! has_post_thumbnail( $post_id ) ) {
    set_transient( "has_post_thumbnail", "no" );
    remove_action('save_post', 'jcz_sprawdz_obrazek');
    wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));

    add_action('save_post', 'jcz_sprawdz_obrazek');
  } else {
    delete_transient( "has_post_thumbnail" );
  }
}

function jcz_obrazek_brak() {
  if ( get_transient( "has_post_thumbnail" ) == "no" ) {
    echo "<div id='message' class='error'><p><strong>Musisz dodać obrazek wyróżniający - Post został zapisany</strong></p></div>";
    delete_transient( "has_post_thumbnail" );
  }
}

Jak dodać ten kod do WordPress?

Kod ten dodaj do motywu w pliku functions.php, najlepiej motywu potomnego lub własnej wtyczki funkcyjnej. Przed „?>” na końcu pliku (może tego fragmentu nie być i wtedy po prostu na końcu). Więcej szczegółów w artykule: Własny kod w WordPress.

Efekt – przy próbie zapisu wpisu bez zdjęcia:

Błąd - Brak obrazu wyróżniającego
Błąd – Brak obrazu wyróżniającego

Powyższa akcja zapisze post, ale nie pozwoli go opublikować – jest dla Ciebie bezpieczna.

Aktualizacje

2016-03-08 – Dziękuję Sebastianowi za pomoc w aktualizacji funkcji.
2016-09-07 – Ponownie dziękuję, za udoskonalenie skryptu Sebastianowi – Naprawiłem błąd przy usuwaniu wpisów i przenoszeniu ich do kosza

4/5 - (1 vote)
dHosting najlepszy serwer dla wordpress i nie tylko
Powiązane tematy: WordPress

Na stronie mogą znajdować się linki polecające (affiliacyjne), które pozwalają utrzymać bloga. Zakup z mojego polecenia nie generuje dla Ciebie dodatkowych kosztów, a ja otrzymam prowizje od kwoty zapłaconej.

Przyłącz się do dyskusji