Більше результатів...

Загальні селектори
Тільки точні збіги
Шукати у заголовках
Шукати у контенті
Вибір типів постів
Фільтрувати за категоріями
FAQ
Hostenko
Натхнення
Відео уроки
Новини
Плагіни
теми
Уроки
Хакі

У процесі роботи над проектом ми якось вирішили створити красиву галерею, повністю побудовану на вкладеннях для WordPress і типі публікацій, що налаштовується на сайті, для чого нам знадобилося ввести додаткові поля завантажувач медіа-файлів для WordPress-сайту. Дані додаткові поля дозволили нам вказати ім'я та дані кожного фотографа, чиї фотографії були використані, а також URL сайту фотографа на сторінці із зображеннями. У WordPress зображення зберігаються як пости, описані у вкладеннях сайту, тому додавання мета-даних має такий же характер, як додавання полів, що настроюються.

Оскільки вкладення WordPress не мають власного інтерфейсу для полів, що настроюються, нам довелося додати ці поля в медіа-завантажувач так, щоб вони збирали мета-дані. У даній публікації я покажу вам, як додати додаткові поля в завантажувач WordPress Media Uploader.

inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!

Для цієї мети ми будемо застосовувати такі фільтри: attachment_fields_to_edit и attachment_fields_to_save

Все, що потрібно зробити - це вставити фрагмент коду у файл вашої теми functions.php, щоб запрацювали необхідні зміни на сайті:

/**
 * Add Photographer Name and URL fields to media uploader
 *
 * @param $form_fields array, fields to include in attachment form
 * @param $post object, attachment record in database
 * @return $form_fields, modified form fields
 */
 
function be_attachment_field_credit( $form_fields, $post ) {
	$form_fields['be-photographer-name'] = array(
		'label' => 'Photographer Name',
		'input' => 'text',
		'value' => get_post_meta( $post->ID, 'be_photographer_name', true ),
		'helps' => 'If provided, photo credit will be displayed',
	);

	$form_fields['be-photographer-url'] = array(
		'label' => 'Photographer URL',
		'input' => 'text',
		'value' => get_post_meta( $post->ID, 'be_photographer_url', true ),
		'helps' => 'Add Photographer URL',
	);

	return $form_fields;
}

add_filter( 'attachment_fields_to_edit', 'be_attachment_field_credit', 10, 2 );

/**
 * Save values of Photographer Name and URL in media uploader
 *
 * @param $post array, the post data for database
 * @param $attachment array, attachment fields from $_POST form
 * @return $post array, modified post data
 */

function be_attachment_field_credit_save( $post, $attachment ) {
	if( isset( $attachment['be-photographer-name'] ) )
		update_post_meta( $post['ID'], 'be_photographer_name', $attachment['be-photographer-name'] );

	if( isset( $attachment['be-photographer-url'] ) )
update_post_meta( $post['ID'], 'be_photographer_url', esc_url( $attachment['be-photographer-url'] ) );

	return $post;
}

add_filter( 'attachment_fields_to_save', 'be_attachment_field_credit_save', 10, 2 );
?>

Наведений вище код додасть 2 текстові поля до вашого медіа-завантажувача, ці поля будуть називатися Photographer Name и Photographer URL. Як виглядатимуть ці поля, ви можете побачити на малюнку нижче:

Як додати додаткові поля до медіа-завантажувача WordPress

Роз'яснення за кодом:

  • У першій функції ми просто використовуємо масив для конкретизації ярлика для поля, типу введення, значення та тексту-підказки.
  • Друга функція перевіряє, чи задані правильні значення всім полів. Якщо значення задані правильно і вони перевірені, то завантажуються мета-дані вашого посту.

Якщо ви бажаєте відображати поля для шаблону ваших файлів, що завантажуються, тоді просто вставте наступні фрагменти коду всередині циклу:

echo get_post_meta($post->ID, 'be_photographer_url', true);

Якщо ви бажаєте відображати значення полів для підтримуваних зображень в архівному шаблоні або будь-якому іншому шаблоні, тоді просто використовуйте такий код:

echo get_post_meta(get_post_thumbnail_id(), 'be_photographer_url', true);

На цьому все. Сподіваємося, що цей невеликий урок стане вам у нагоді.

Джерело: WPBeginner
inet.ws - Powerful VPS Hosting в США, Canada, UK та DE!
Олексій Шевченко
редактор wpcafe
Вивчає сайтобудування з 2008 року. Практикуючий вебмайстер, який спеціалізується на створенні сайтів на WordPress. Задати питання Олексію можна на https://profiles.wordpress.org/wpthemeus/

Коментарі до запису: 3

Alex A. Zaramenskikh:

Корисно. Дякую.

Artem:

А як зробити додаткове поле в завантажувачі, якщо мені треба додавати до картинок додаткові параметри, наприклад: *rel="shadowbox;height=480;width=640"*, щоб це відображалося таким чином:

WordPresso:

У цьому уроці описано як додавати лише мета-дані до зображення. Ви хочете додати параметри стилю відображення.

Додати коментар або відгук