Conținut de marketing

WordPress: Adăugați o coloană de imagine recomandată la lista de postări din tema dvs. folosind functions.php

Un plugin WordPress implică cheltuieli suplimentare, necesitând ca WordPress să încarce și să gestioneze pluginul. Aceasta include citirea directorului de pluginuri, verificarea actualizărilor și menținerea metadatelor pluginului. Ori de câte ori lucrez la optimizare Martech Zone sau instalarea WordPress a unui client, analizez întotdeauna pluginurile utilizate, calitatea codului, impactul asupra site-ului și cât de multă funcționalitate există în pluginul utilizat.

De multe ori găsesc că plugin-urile sunt umflate, slab dezvoltate și adaugă cheltuieli generale inutile care pot încetini site-ul sau administrarea. Dacă este o caracteristică simplă, de obicei voi elimina pluginul și voi modifica în schimb tema copilului functions.php. Când codul este plasat în tema copilului functions.php fișier, este integrat direct în temă, ceea ce poate fi puțin mai eficient în ceea ce privește utilizarea resurselor.

În cele din urmă, alegerea dvs. ar trebui să ia în considerare și factori precum organizarea codului, întreținerea și nevoile specifice ale proiectului dvs.

Adăugați o coloană cu imaginea recomandată la lista de postări

Ruleam un plugin pe Martech Zone care a adăugat o coloană la Lista de postări cu imagine cu caracteristici. Din păcate, plugin-ul a avut unele umflături cu setări și resurse suplimentare inutile, cum ar fi un videoclip care fusese demult eliminat. Am disecat pluginul și mi-am dat seama cum adăugau coloana de imagine... și apoi am modificat pluginul cu câteva caracteristici suplimentare, cum ar fi titlul și dimensiunile imaginii prezentate la trecerea mouse-ului.

Iată codul:

function add_featured_image_column($columns) {
    // Create a new column with the name "img"
    $columns['img'] = 'Featured Image';
    return $columns;
}

function customize_featured_image_column($column_name, $post_id) {
    if ($column_name == 'img') {
        // Get the featured image URL
        $thumbnail_url = get_the_post_thumbnail_url($post_id, 'thumbnail');

        // Check if a featured image is set
        if ($thumbnail_url) {
            // Get the original image URL
            $original_url = get_the_post_thumbnail_url($post_id, 'full');
            // Get the dimensions of the original image
            list($original_width, $original_height) = getimagesize($original_url);

            // Get the actual title
            $actual_title = get_the_title($post_id);

            // Define the title attribute for the image
            $image_title = $actual_title . ' (' . $original_width . 'px by ' . $original_height . 'px)';

            // Display the thumbnail image with a maximum height of 80px and add dimensions to the title attribute
            echo '<img src="' . esc_url($thumbnail_url) . '" style="max-height: 80px;" title="' . $image_title . '" />';
        } else {
            // No featured image is set, display "No featured image"
            echo 'No featured image';
        }
    }
    return $column_name;
}
add_action('manage_posts_columns', 'add_featured_image_column');
add_action('manage_posts_custom_column', 'customize_featured_image_column', 10, 2);

Iată o explicație a codului:

  • add_featured_image_column funcţie:
    • Această funcție adaugă o coloană personalizată la lista de postări din panoul de administrare WordPress. Ia ca argument o matrice de coloane existente ($columns).
    • Se adaugă o nouă coloană numită img cu eticheta Imagine Recomandate.
    • Returnează matricea modificată de coloane cu cele noi img coloană adăugată.
  • customize_featured_image_column funcţie:
    • Această funcție este responsabilă pentru personalizarea conținutului img coloană pentru fiecare postare din listă.
    • Este nevoie de doi parametri: $column_name (numele coloanei curente în curs de procesare) și $post_id (ID-ul postului curent).
    • Verifică dacă coloana procesată în prezent este img (coloana personalizată pe care am adăugat-o).
    • Dacă este vorba de img coloana, preia și afișează imaginea prezentată și informații suplimentare.
    • Folosește get_the_post_thumbnail_url pentru a prelua adresa URL a imaginii prezentate în dimensiunea „miniatură”.
    • Verifică dacă o imagine prezentată este setată verificând dacă $thumbnail_url Nu este gol.
    • Dacă este setată o imagine recomandată, aceasta preia și adresa URL a imaginii originale (la dimensiune completă) și dimensiunile acesteia folosind get_the_post_thumbnail_url și getimagesize.
    • Preia titlul real al postării folosind get_the_title.
    • Acesta construiește title atribut pentru imagine în formatul „Titlu: Titlu real (Lățimea originală px cu înălțimea originală px).”
    • Afișează imaginea în miniatură cu o înălțime maximă de 80 px și setează atributul de titlu la construcția $image_title. Puteți modifica această înălțime la orice doriți.
    • Dacă nu este setată nicio imagine recomandată, se afișează „Fără imagine recomandată setată”.
    • Funcția returnează conținutul modificat pentru img coloana.
  • add_action linii:
    • Aceste linii agăță add_featured_image_column funcția la manage_posts_columns acţiunea şi customize_featured_image_column funcția la manage_posts_custom_column acțiune. Aceasta asociază aceste funcții cu ecranul de gestionare a postărilor WordPress.

    Prin adăugarea acestor acțiuni, codul creează în mod eficient o nouă coloană personalizată în lista de postări de administrator WordPress care afișează imaginea prezentată a fiecărei postări împreună cu titlul și dimensiunile acesteia. Dacă nu există nicio imagine prezentată, se afișează Nicio imagine prezentată. Aceasta poate fi o caracteristică utilă pentru gestionarea și revizuirea postărilor din zona de administrare, mai ales atunci când lucrați cu teme care se bazează în mare măsură pe imaginile prezentate.

    Iată o previzualizare a acestui lucru în acțiune Martech Zone unde trec cu mouse-ul peste imaginea prezentată în al treilea rând:

    Listă de postări cu coloană de imagine caracteristică

    Filtrați pentru postările fără imagine recomandată

    O altă funcție pe care am adăugat-o a fost un filtru, astfel încât să pot identifica cu ușurință orice postare care nu avea un set de imagini prezentate.

    function add_no_featured_image_filter() {
        global $post_type;
        
        // Check if the current post type is 'post' (you can change it to the desired post type)
        if ($post_type == 'post') {
            $selected = (isset($_GET['no_featured_image']) && $_GET['no_featured_image'] == '1') ? 'selected' : '';
            echo '<select name="no_featured_image" id="no_featured_image">
                <option value="" ' . $selected . '>All Posts</option>
                <option value="1" ' . selected('1', $_GET['no_featured_image'], false) . '>No Featured Image</option>
            </select>';
        }
    }
    
    function filter_no_featured_image_posts($query) {
        global $pagenow;
    
        // Check if we are on the posts page and the filter is set
        if (is_admin() && $pagenow == 'edit.php' && isset($_GET['no_featured_image']) && $_GET['no_featured_image'] == '1') {
            $query->set('meta_key', '_thumbnail_id');
            $query->set('meta_compare', 'NOT EXISTS');
        }
    }
    add_action('restrict_manage_posts', 'add_no_featured_image_filter');
    add_action('parse_query', 'filter_no_featured_image_posts');

    Acest cod îmbunătățește funcționalitatea zonei de administrare WordPress prin adăugarea unui filtru personalizat pentru postări, care să permită utilizatorilor să filtreze postările în funcție de faptul că au un set de imagini prezentate sau nu. Iată o explicație a codului:

    • add_no_featured_image_filter funcţie:
      • Această funcție creează un filtru derulant personalizat pentru postările din panoul de administrare WordPress.
      • Începe prin verificarea tipului de postare curent. În acest cod, se verifică în mod special dacă tipul de postare curent este „post”, dar îl puteți schimba cu orice tip de postare dorit.
      • Dacă tipul de postare se potrivește, se generează meniul derulant al filtrului.
      • Meniul derulant al filtrului este un HTML <select> element cu numele „no_featured_image” și ID-ul „no_featured_image”.
      • Conține două opțiuni:
        • „Toate postările” (opțiune implicită): Această opțiune este selectată atunci când nu este aplicată nicio filtrare specifică.
        • „Fără imagine recomandată”: această opțiune este selectată atunci când utilizatorul dorește să filtreze postările fără imagine prezentată.
      • Selectarea acestor opțiuni este determinată pe baza parametrilor de interogare URL ($_GET) și dacă no_featured_image parametrul este setat la „1”.
      • selected funcția este utilizată pentru a determina dacă o opțiune ar trebui să fie marcată ca „selectată” pe baza valorilor parametrilor de interogare.
      • Funcția ecou HTML pentru meniul derulant al filtrului.
    • filter_no_featured_image_posts funcţie:
      • Această funcție modifică interogarea pentru a filtra postările în funcție de prezența sau absența unei imagini prezentate.
      • Mai întâi verifică dacă ne aflăm în zona de administrare WordPress și pe pagina „edit.php”, care este pagina de gestionare a postărilor.
      • Apoi verifică dacă no_featured_image parametrul de interogare este setat la „1”, indicând faptul că utilizatorul dorește să filtreze postările fără nicio imagine prezentată.
      • Dacă filtrul este activ, folosește set metoda de modificare a interogării:
      • Acesta stabilește meta_key la _id_miniatură, cheia folosită pentru a stoca ID-ul imaginii prezentate în metadatele postării.
      • Acesta stabilește meta_compare la „NU EXISTĂ”, care filtrează efectiv postările în care meta-cheia „_thumbnail_id” nu există. Cu alte cuvinte, filtrează postările fără imagine prezentată.
      • Această funcție ajustează interogarea în funcție de selecția filtrului.
    • add_action linii:
      • Prima add_action linia cârlige add_no_featured_image_filter funcția la acțiunea „restrict_manage_posts”. Această acțiune este apelată la afișarea secțiunii de gestionare a postărilor și vă permite să adăugați filtre și controale personalizate.
      • Al doilea add_action linia cârlige filter_no_featured_image_posts funcția la acțiunea „parse_query”. Această acțiune este apelată înainte ca interogarea să fie executată, permițându-vă să modificați interogarea pe baza filtrelor personalizate.

      Iată o previzualizare a filtrului:

      Adaugă un filtru pentru lista de postări fără imagini recomandate

      Prin adăugarea acestor acțiuni, codul creează un filtru personalizat în lista de postări de administrare WordPress care vă permite să filtrați postările în funcție de faptul că au un set de imagini prezentate sau nu, facilitând gestionarea și organizarea postărilor.

      Douglas Karr

      Douglas Karr este un director de marketing specializat în companii SaaS și AI, unde ajută la scalarea operațiunilor de marketing, la stimularea generării cererii și la implementarea strategiilor bazate pe AI. Este fondatorul și editorul Martech Zone, o publicație de top în… Mai mult »
      Înapoi la butonul de sus
      Închide

      Blocarea reclamelor a fost detectată

      Ne bazăm pe reclame și sponsorizări pentru a menține Martech Zone gratuit. Vă rugăm să luați în considerare dezactivarea blocatorului de reclame sau să ne susțineți cu un abonament anual accesibil și fără reclame (10 USD):

      Înscrie-te pentru un abonament anual