Змест маркетынгу

WordPress: дадайце слупок выбраных малюнкаў у спіс вашых паведамленняў у вашай тэме з дапамогай functions.php

Убудова WordPress прадугледжвае дадатковыя накладныя выдаткі, што патрабуе ад WordPress загрузкі ўбудовы і кіравання ім. Гэта ўключае ў сябе чытанне каталога плагіна, праверку абнаўленняў і захаванне метададзеных плагіна. Кожны раз, калі я працую над аптымізацыяй Martech Zone ці ўсталяванне кліента WordPress, я заўсёды аналізую выкарыстоўваныя плагіны, якасць кода, уплыў на сайт і тое, наколькі функцыянальныя магчымасці плагіна, які выкарыстоўваецца.

Я часта лічу, што ўбудовы раздзьмутыя, дрэнна распрацаваны і дадаюць непатрэбныя накладныя выдаткі, якія могуць запаволіць сайт або адміністрацыю. Калі гэта простая функцыя, я звычайна выдаляю плагін і замест гэтага змяняю даччыную тэму functions.php. Калі код размешчаны ў даччынай тэме functions.php файл, ён непасрэдна інтэграваны ў тэму, што можа быць крыху больш эфектыўным адносна выкарыстання рэсурсаў.

У рэшце рэшт, ваш выбар павінен таксама ўлічваць такія фактары, як арганізацыя кода, абслугоўванне і канкрэтныя патрэбы вашага праекта.

Дадайце слупок выбраных малюнкаў у спіс паведамленняў

Я запускаў убудову на Martech Zone які дадаў слупок у спіс паведамленняў з Паказаны малюнка. На жаль, плагін меў непатрэбныя дадатковыя налады і рэсурсы, такія як відэа, якое даўно было выдалена. Я разабраўся з убудовай і зразумеў, як яны дадаюць слупок выявы... а потым я змяніў убудову з некаторымі дадатковымі функцыямі, такімі як загаловак і памеры прадстаўленай выявы пры навядзенні мышы.

Вось код:

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);

Вось тлумачэнне кода:

  • add_featured_image_column функцыя:
    • Гэтая функцыя дадае карыстальніцкі слупок у спіс паведамленняў у панэлі адміністратара WordPress. Ён прымае масіў існуючых слупкоў у якасці аргумента ($columns).
    • Ён дадае новы слупок з імем IMG з этыкеткай папулярныя малюнкі.
    • Ён вяртае зменены масіў слупкоў з новым IMG слупок дададзены.
  • customize_featured_image_column функцыя:
    • Гэтая функцыя адказвае за настройку змесціва IMG слупок для кожнага паведамлення ў спісе.
    • Ён прымае два параметры: $column_name (імя бягучага слупка, які апрацоўваецца) і $post_id (ідэнтыфікатар бягучага паведамлення).
    • Ён правярае, ці з'яўляецца апрацоўваны ў цяперашні час слупок IMG (карыстальніцкі слупок, які мы дадалі).
    • Калі гэта IMG слупок, ён атрымлівае і адлюстроўвае паказаны малюнак і дадатковую інфармацыю.
    • ён выкарыстоўвае get_the_post_thumbnail_url каб атрымаць URL паказанага малюнка ў памеры «мініяцюры».
    • Ён правярае, ці ўстаноўлена паказаная выява, правяраючы, ці ёсць $thumbnail_url не пусты.
    • Калі ўстаноўлена прадстаўленая выява, яна таксама атрымлівае URL арыгінальнай (поўнапамернай) выявы і яе памеры з дапамогай get_the_post_thumbnail_url і getimagesize.
    • Ён атрымлівае фактычную назву паведамлення з дапамогай get_the_title.
    • Гэта канструюе title атрыбут выявы ў фармаце «Назва: фактычная назва (арыгінальная шырыня пікселяў на арыгінальную вышыню пікселяў)».
    • Ён адлюстроўвае эскіз выявы з максімальнай вышынёй 80 пікселяў і ўсталёўвае атрыбут загалоўка ў пабудаваны $image_title. Вы можаце змяніць гэтую вышыню так, як хочаце.
    • Калі абраны відарыс не ўсталяваны, адлюстроўваецца надпіс «Выбраны відарыс не ўсталяваны».
    • Функцыя вяртае зменены кантэнт для IMG калонцы.
  • add_action радкі:
    • Гэтыя радкі зачапляюць add_featured_image_column функцыі да ст manage_posts_columns дзеянне і ст customize_featured_image_column функцыі да ст manage_posts_custom_column дзеянне. Гэта звязвае гэтыя функцыі з экранам кіравання паведамленнямі WordPress.

    Дадаючы гэтыя дзеянні, код фактычна стварае новы карыстальніцкі слупок у спісе паведамленняў адміністратара WordPress, які адлюстроўвае выяву кожнага паведамлення разам з яго назвай і памерамі. Калі няма прадстаўленай выявы, яна адлюстроўваецца Няма прадстаўленай выявы. Гэта можа быць карыснай функцыяй для кіравання і прагляду паведамленняў у вобласці адміністратара, асабліва пры працы з тэмамі, якія ў значнай ступені залежаць ад паказаных малюнкаў.

    Вось папярэдні прагляд гэтага ў дзеянні Martech Zone дзе я наводжу курсор мышы на прадстаўлены малюнак у трэцім радку:

    Спіс паведамленняў са слупком відарыса

    Фільтр для паведамленняў без вылучанага малюнка

    Яшчэ адна функцыя, якую я дадаў, - гэта фільтр, каб я мог лёгка ідэнтыфікаваць любую публікацыю, у якой не было набору паказаных малюнкаў.

    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');

    Гэты код пашырае функцыянальнасць адміністрацыйнай вобласці WordPress, дадаючы карыстальніцкі фільтр для паведамленняў, які дазваляе карыстальнікам фільтраваць паведамленні ў залежнасці ад таго, ёсць у іх набор паказаных малюнкаў ці не. Вось тлумачэнне кода:

    • add_no_featured_image_filter функцыя:
      • Гэтая функцыя стварае выпадальны спіс карыстальніцкага фільтра для паведамленняў у панэлі адміністратара WordPress.
      • Пачынаецца з праверкі бягучага тыпу паведамлення. У гэтым кодзе спецыяльна правяраецца, ці з'яўляецца бягучы тып паведамлення "паведамленне", але вы можаце змяніць гэта на любы жаданы тып паведамлення.
      • Калі тып паведамлення супадае, ён пераходзіць да стварэння выпадальнага меню фільтра.
      • Выпадальнае меню фільтраў - гэта HTML <select> элемент з назвай «no_featured_image» і ідэнтыфікатарам «no_featured_image».
      • Ён змяшчае два варыянты:
        • «Усе паведамленні» (параметр па змаўчанні): гэты параметр выбіраецца, калі не прымяняецца спецыяльная фільтрацыя.
        • «Без паказанага малюнка»: гэты параметр выбіраецца, калі карыстальнік хоча адфільтраваць паведамленні без паказанага малюнка.
      • Выбар гэтых параметраў вызначаецца на аснове параметраў запыту URL ($_GET) і ці no_featured_image параметр усталяваны ў «1».
      • ,en selected функцыя выкарыстоўваецца для вызначэння таго, ці павінен параметр быць пазначаны як «выбраны» на аснове значэнняў параметраў запыту.
      • Функцыя паўтарае HTML для выпадальнага спісу фільтраў.
    • filter_no_featured_image_posts функцыя:
      • Гэтая функцыя змяняе запыт для фільтрацыі паведамленняў на аснове наяўнасці або адсутнасці паказанага малюнка.
      • Спачатку ён правярае, ці знаходзімся мы ў адміністрацыйнай вобласці WordPress і на старонцы «edit.php», якая з'яўляецца старонкай кіравання паведамленнямі.
      • Затым ён правярае, ці ёсць no_featured_image параметр запыту ўсталяваны ў "1", што паказвае на тое, што карыстальнік хоча фільтраваць паведамленні без паказанага малюнка.
      • Калі фільтр актыўны, ён выкарыстоўвае set метад змены запыту:
      • Гэта ўсталёўвае meta_key у _thumbnail_id, ключ, які выкарыстоўваецца для захавання ідэнтыфікатара прадстаўленай выявы ў метададзеных паведамлення.
      • Гэта ўсталёўвае meta_compare у «НЕ ІСНУЕ», што эфектыўна фільтруе паведамленні, у якіх не існуе метаключа «_thumbnail_id». Іншымі словамі, ён адфільтроўвае паведамленні без прыкметнага малюнка.
      • Гэтая функцыя карэктуе запыт на аснове выбару фільтра.
    • add_action радкі:
      • Першы add_action лінія гаплікі ст add_no_featured_image_filter функцыя для дзеяння 'restrict_manage_posts'. Гэта дзеянне выклікаецца пры адлюстраванні раздзела кіравання паведамленнямі і дазваляе дадаваць карыстальніцкія фільтры і элементы кіравання.
      • Другі add_action лінія гаплікі ст filter_no_featured_image_posts функцыя да дзеяння 'parse_query'. Гэта дзеянне выклікаецца перад выкананнем запыту, што дазваляе змяняць запыт на аснове карыстацкіх фільтраў.

      Вось папярэдні прагляд фільтра:

      Дадаць фільтр спісу паведамленняў для адсутнасці выявы

      Дадаючы гэтыя дзеянні, код стварае ўласны фільтр у спісе паведамленняў адміністратара WordPress, які дазваляе фільтраваць паведамленні ў залежнасці ад таго, ёсць у іх набор паказаных відарысаў ці не, што палягчае кіраванне і арганізацыю паведамленняў.

      Артыкулы па Тэме

      Вярнуцца да пачатку кнопкі
      блізка

      Выяўлена блакіроўка рэкламы

      Мы залежым ад рэкламы і спонсарства, каб падтрымліваць Martech Zone бясплатна. Калі ласка, адключыце блакіроўшчык рэкламы або падтрымайце нас, аформіўшы даступнае гадавое сяброўства без рэкламы (10 долараў ЗША):

      Зарэгіструйцеся для атрымання штогадовага сяброўства