Podczas pracy nad projektem, w którym stworzyliśmy bardzo fajną galerię zasilaną całkowicie przez załączniki WordPress i niestandardowy typ postu, stwierdziliśmy potrzebę dodania dodatkowych pól do WordPress media uploader. Te dodatkowe pola pozwoliły nam przyznać każdemu fotografowi kredyt, dodając nazwę fotografa i jego adres URL na każdej stronie obrazu. WordPress przechowuje obrazy jako posty w typie postu załącznika, więc dodawanie metadanych jest jak dodawanie niestandardowych pól. Ponieważ załączniki WordPress nie mają interfejsu pól niestandardowych, musimy dodać pola niestandardowe do programu do przesyłania multimediów w celu zebrania metadanych. W tym artykule pokażemy, jak dodać dodatkowe pola do WordPress Media Uploader.

Będziemy używać następujących filtrów, aby dokonać zmiany: attachment_fields_to_edit oraz attachment_fields_to_save

W przypadku takiego projektu zalecamy utworzenie wtyczki specyficznej dla witryny i dodanie następującego kodu. Możesz jednak nadal dodawać kody w funkcjach szablonu.plik php, aby to działało.

/**
 * Dodaj nazwę fotografa i pola URL do Media uploader
 *
 * @ param $form_fields array, pola do załączenia w formularzu załączników
 * @ param $post obiekt, załącznik rekord w bazie danych
 * @ return $form_fields, zmodyfikowane pola formularza
 */
 
function be_attachment_field_credit ($form_fields, $post) {
	$form_fields ['be-photographer-name'] = array(
		'label' = > 'Nazwa fotografa',
		'input' = > 'text',
		'value' = > get_post_meta ($post->ID, 'be_photographer_name', true ),
		'helps' = > 'jeśli zostanie podany, zdjęcie zostanie wyświetlone',
	);

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

	return $form_fields;
}

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

/**
 * Zapisz wartości nazwy fotografa i adresu URL w programie Media uploader
 *
 * @ param $Post array, dane post dla bazy danych
 * @ param $tablica załączników, pola załączników z formularza $_POST
 * @ 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 );
?>

Powyższy kod doda dwa pola tekstowe do programu do przesyłania multimediów o nazwie Nazwa fotografa i adres URL fotografa. Widać to na poniższym zrzucie ekranu:

Additional Fields in the Media Uploader

Wyjaśnienie kodu: W pierwszej funkcji po prostu używamy tablicy, aby określić Etykietę pola, Typ wejścia, wartość i tekst pomocy. Druga funkcja sprawdza, czy dla tych pól ustawiono wartość. Jeśli wartość jest ustawiona, metadane post są aktualizowane.

Jeśli chcesz wyświetlić pola w szablonie załączników, po prostu wklej następujące kody w pętli:

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

Jeśli chcesz wyświetlić pola wyróżnionego obrazu w szablonie archiwum lub innym szablonie, po prostu użyj:

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

Mamy nadzieję, że podobał Ci się ten artykuł. Dla tych, którzy nie wiedzą, jak utworzyć szablon załącznika, nie martw się. W następnym artykule omówimy jak stworzyć szablon załącznika w WordPress.

Wskazówka dla Billa Ericksona za pokazanie nam, jak to zrobić.

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…

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…

Jak zainstalować WordPress lokalnie na komputerze Mac za pomocą MAMP

W artykule: Jak zainstalować MAMP na komputerze MacInstalacja WordPress na komputerze MacWypróbowanie…