Korzystanie z polecanych obrazów stawia Cię, właściciela witryny WordPress, między tym kamieniem a twardym miejscem.

Chcesz użyć wyróżnionych obrazów w swoim motywie, ponieważ dodają one tyle wizualnego uderzenia i przyciągają uwagę. Ale zapewnienie, że każdy post ma wyróżniony obraz, może wydłużyć czas na napisanie postu znacznie i może być nieprzydatnym odstraszaczem.

W tym artykule pokażę Ci, jak możesz zachować integralność motywu i złagodzić ten ból autorski za pomocą polecanych obrazów awaryjnych.

"You’ll have Something to Fall Back on After the War ---- if you Buy Victory Bonds. Canada's 9th Victory Loan"; poster depicts an image of a man lying on a pile of money and lighting his pipe with a bill. A man’s military uniform is hanging to the right of him, covered in spider webs.
Obrazy awaryjne nie pozwolą ci siedzieć na stosie banknotów dolarowych, ale zostawią Ci treść!

Większość nowoczesnych motywów w znacznym stopniu wykorzystuje obrazy. Jest to naturalne, ponieważ zwiększa się przepustowość, a nasze obawy dotyczące rozmiaru obrazów maleją, a także wiedza, że Witryny są coraz częściej oglądane na tabletach, które wyróżniają się w wyświetlaniu obrazów.

Wybór i przygotowanie obrazów może być jednak niezwykle czasochłonne i może stanowić istotną przeszkodę w pisaniu nowych postów. Aktualizacja witryny w celu użycia motywu ciężkiego obrazu może być podobnie zniechęcająca, jeśli oznacza to powrót do wszystkich treści i dodanie polecanych obrazów.

Na szczęście włączenie obrazów awaryjnych-obrazów używanych, gdy post nie ma polecanego obrazu-jest stosunkowo proste.

Jest to rozwiązanie oparte na posiadaniu obrazów kategorii. Każda kategoria w Twojej witrynie będzie miała przypisany obraz; będzie to ten obraz, który zostanie użyty jako polecany obraz dla każdego postu w tej kategorii, który nie ma własnego polecanego obrazu. Używa istniejącej wtyczki i niestandardowego kodu i może być używany z dowolnym motywem.

Krok 1-Zainstaluj Wtyczkę Obrazu Kategorii WPCustom

Tam co najmniej wtyczki 10 w repozytorium wtyczek WordPress, które zapewniają obrazy kategorii. Dlaczego tak wielu, nie jestem pewien, wszyscy muszą mieć własne podejście do wdrażania tej funkcji.

Wybrałem opcję WPCustom Category Image Plugin, ponieważ jest stosunkowo prosty, ma dobry czysty kod (będziemy używać jednej z jego funkcji), jest łatwy w użyciu i jest kompatybilny z WordPress 3.6+.

Zainstaluj i aktywuj wtyczkę.

Krok 2-Dodaj Zdjęcia Kategorii

Po aktywowaniu wtyczki musisz dodać obrazy dla każdej z kategorii, w tym Bez kategorii jeśli istnieje.

Przejdź do Posty > Kategorie i dla każdej kategorii, edytuj ją i powiąż obraz klikając na Prześlij / Edytuj Obraz przycisk i wybrać istniejący obraz z okna dialogowego Media lub przesłać nowy obraz.

Krok 3-Dodaj niestandardowy kod

Nasz niestandardowy kod haki do get_post_metadata filtruj i zwraca identyfikator obrazu powiązanego z kategorią przypisaną do postu. Jeśli post ma przypisanych wiele kategorii, to bierze pierwszą kategorię.

Na szczęście zapewni to również, że has_thumbnail funkcja zwróci również true. To ważne, ponieważ wiele motywów, wśród nich TwentyThirteen, wywołaj tę funkcję przed próbą wyprowadzenia polecanego obrazu, co oznacza, że nie możemy po prostu podłączyć do połączenia, aby uzyskać miniaturę.

Użycie tego kodu oznacza również, że to rozwiązanie będzie działać z dowolnym motywem.

function fallback_get_post_metadata ($spare , $object_id , $meta_key , $single ) {

// interesuje tylko, jeśli jest to wezwanie do ID miniatury w interfejsie publicznym
if (is_admin () / / $meta_key!= '_thumbnail_id') return;

// sprawdź istniejącą miniaturę-uwaga nie może korzystać z żadnej funkcji, która utworzy nieskończoną pętlę!
$meta_cache = wp_cache_get( $object_id , 'post_meta');

jeśli ( !$meta_cache) {
$meta_cache = update_meta_cache ('post', array ($object_id ) );
$meta_cache = $meta_cache[$object_id];
}
// jeśli post ma miniaturkę to zwróć NULL do contine
if ( isset( $meta_cache[$meta_key] ) ) return $meta_cache[$meta_key];
// teraz musimy uzyskać identyfikator kategorii

// get the categories assigned to the post
$post_cats = get_the_category ($object_id );
// brak kategorii, mało prawdopodobne, ale nie mogę nic zrobić
if (count ($post_cats) = = 0) return NULL;
// we ' ll just take the first
$term_id = $post_cats[0]->term_id;
// korzystając z funkcji z wtyczki, uzyskaj identyfikator obrazu kategorii
$attach_id = WPCustomCategoryImage:: get_attachment_id ($term_id );
// No category image, out of here
jeśli ( !$attach_id) zwraca null;
// teraz zapisz to w metadanych posta używając id _thumbnail_id
return $attach_id;

}

add_filter ('get_post_metadata', 'fallback_get_post_metadata', 10, 4 );

Więc, co robi kod?

  1. Zaczepia się w get_post_metadata filtr, który jest wywoływany w wielu miejscach w WordPress, więc najpierw sprawdza, czy jest to żądanie identyfikatora miniatury (wyróżnionego obrazu) w interfejsie publicznym.
  2. Jeśli tak, to sprawdza mem_cache do wpisu, aby sprawdzić, czy istnieje Miniatura-ten kod jest zapożyczony z WordPressa get_post_meta funkcja. Jeśli tak, to zwraca identyfikator.
  3. Jeśli nie ma istniejącej miniatury, otrzymuje pierwszą kategorię dla postu, a następnie używa funkcji z wtyczki Wpcustom Category Image, aby uzyskać obraz kategorii. Jest to zwracane tak, jakby był to polecany obraz posta.

Gdzie umieścić kod?

Jak zwykle masz dwa wyjścia. Możesz dodać go do swojego motywu funkcje.php (lub utwórz motyw potomny), który byłby całkowicie poprawny, biorąc pod uwagę, że jest to związane z tematem.

Alternatywnie możesz dodać standardowy nagłówek wtyczki WordPress do kodu, zapnij go i załaduj jako wtyczkę. Oczywistą zaletą jest to, że będzie on niezależny od motywu i oczywiście można go wyłączyć bez konieczności edycji plików motywu.

Na końcu artykułu znajduje się plik do pobrania, który zawiera kod jako wtyczkę.

Możesz też zapomnieć o niestandardowym kodzie i po prostu edytować motyw

Alternatywnie możesz zapomnieć o kodzie i po prostu edytować swój motyw, w którym wyświetla post. W przypadku niektórych motywów, takich jak TwentyThirteen, oznacza to tylko edycję jednego pliku, treść.php.

Aby dodać obrazy zapasowe do TwentyThirteen, otwórz treść.php i wymienić

<?php if (has_post_thumbnail ()&&! post_password_required ()):?>


< div class = "entry-thumbnail">
<?php the_post_thumbnail(); ?>
< / div>


<?PHP endif;?>

Z:

<?php if (! post_password_required ()):?>


< div class = "entry-thumbnail">
<?php
if (has_post_thumbnail() ) {
the_post_thumbnail();
} else {
// get the categories assigned to the post
$post_cats = get_the_category ($post- > ID );
// brak kategorii, mało prawdopodobne, ale nie mogę nic zrobić
if (($post_cats)) {
// we ' ll just take the first
$term_id = $post_cats[0]->term_id;

// get the category image (funkcja dostarczana przez WPCustom Category Image function
category_image (array ('term_id' =>$term_id, 'size' => 'post-thumbnail'), true);
}
}
?>
< / div>


<?PHP endif;?>

Dodaje to sprawdzenie (i wyświetlenie) obrazu kategorii, jeśli post nie ma własnego wyróżnionego obrazu. Korzystanie z rozmiaru Post-miniaturki przy wywołaniu do category_image zapewnia, że wszystkie obrazy pozostaną w tym samym rozmiarze.

Niezależnie od tego, czy używasz niestandardowego kodu, czy edytujesz swój motyw, możesz upewnić się, że każdy post w Twojej witrynie będzie miał polecany obraz bez konieczności przechodzenia i aktualizowania wszystkich istniejących postów. Oznacza to również, oczywiście, że jeśli przeniesiesz post do innej kategorii, zmieni się również jego obraz awaryjny.

Aby naprawdę dokręcić polecane obrazy, możesz połączyć powyższe z wtyczką, aby wymagać polecanych obrazów przed publikacją.

Tagi:

You May Also Like

Jak naprawić nieprawidłowy błąd JSON w WordPress (Przewodnik dla początkujących)

W artykule: Co powoduje błąd „nieprawidłowa odpowiedź JSON” w WordPress?1. Sprawdź adresy…

Jak zmienić kolor linku w WordPress (poradnik dla początkujących)

W artykule: Dlaczego Linki Są Ważne?Jak dodawać linki w postach i stronach…

WordPress Pingbacks & Trackbacks: Ultimate A-Z Guide

W artykule: Czym są Pingbacks i Trackbacks? Plus, dlaczego są ważneCzym Są…

Jak naprawić błąd krytyczny w WordPress (krok po kroku)

W artykule: Co To jest błąd krytyczny w WordPress?Co powoduje krytyczny błąd…