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 слупок дададзены.
- Гэтая функцыя дадае карыстальніцкі слупок у спіс паведамленняў у панэлі адміністратара WordPress. Ён прымае масіў існуючых слупкоў у якасці аргумента (
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, які дазваляе фільтраваць паведамленні ў залежнасці ад таго, ёсць у іх набор паказаных відарысаў ці не, што палягчае кіраванне і арганізацыю паведамленняў.







