Używam, register_taxonomy_for_object_type()
aby dodać pole kategorii kategorii do przesyłanych multimediów (załączników). Używam tego kodu, aby to zrobić:
add_action('init', 'reg_tax');
function reg_tax() {
register_taxonomy_for_object_type('category', 'attachment');
}
Działa to i dodaje proste pole tekstowe kategorii do strony Media podczas przeglądania obrazu. Naprawdę chcę, aby wyświetlał rzeczywisty Metaboks kategorii, dzięki czemu mogę wybrać kategorie, których chcę użyć, zamiast po prostu wpisać je w zwykłe pole. Odkryłem również, że umieszczenie informacji o kategorii w tym polu tekstowym, na przykład my-category-name
, wyświetla się jako rzeczywista nazwa kategorii, tak jak w My Category Name
przypadku jej zapisania, co sprawia, że proste pole tekstowe jest jeszcze mniej przydatne.
add_post_type_support()
Patrzyłem na funkcję dodawania Metaboksów i widziałem, że jest używana w niestandardowych typach postów, po prostu nie widzę, czy można dodać to samo dla załączników.
źródło
Odpowiedzi:
Edytuj: 12/09/2017 Zobacz tę odpowiedź, aby uzyskać bardziej aktualne rozwiązanie tego: Jak korzystać z taksonomii załączników w nowej bibliotece multimediów?
Odpowiem na własne pytanie tutaj, ponieważ udało mi się znaleźć rozwiązanie tego, co próbowałem zrobić. Doszedłem do wniosku, że włączenie Metabox kategorii dla załączników nie było możliwe. Stwierdziłem jednak, że łatwo było uzyskać podstawowe pole dla kategorii dodanych do strony załączników, używając
register_taxonomy_for_object_type
iadd_post_type_support
:Dodane pole pokazało się następująco:
To tylko zwykłe pole tekstowe, ale znalazłem, że możesz wpisać tam nazwę istniejącej kategorii, a następnie z powodzeniem zapisano ją po aktualizacji załącznika (Jedynym dziwnym zachowaniem jest to, że przywróciła normalną wersję zamiast ślimak po zapisaniu).
Kiedy zdałem sobie sprawę, że mogę zapisać kategorie w ten sposób, pomyślałem, że mogę uzyskać listę wszystkich dostępnych kategorii jako pola wyboru i sprawdzić te, które zostały wybrane. Następnie użyłem trochę jQuery, aby pobrać wartości zaznaczonych kategorii i umieścić wszystkie dane kategorii w polu Kategoria. Aby wyglądało to jeszcze bardziej płynnie, użyłem prostego kodu CSS, aby ukryć wiersz tabeli zawierający pole Kategoria, więc wszystko, co kiedykolwiek widzisz, to pola wyboru, takie jak:
Teraz, gdy mogę dodawać kategorie do załączników obrazów, mogę użyć czegoś takiego:
I przeciągnij skategoryzowane obrazy na stronę! Dokładnie to, co chciałem zrobić, nie sądziłem, że będzie na to sposób, ale cieszę się, że udało mi się coś wymyślić.
Przekształciłem to w wtyczkę o nazwie
WOS Media Categories
Udostępniłem do pobrania z mojej strony internetowej Suburbia.org.uk , mam nadzieję, że może się przydać komuś innemu! Jeszcze raz dziękuję tym, którzy skomentowali to i inne pytania, które tu zadałem, które pomogły to rozgryźć!Aktualizacja: Dodałem poprawkę umożliwiającą dodawanie kategorii podczas przesyłania zdjęć za pomocą programu do przesyłania zbiorczego Flash.
źródło
właśnie to stworzyłem, co stanowi całkowite obejście połączenia herky-jerk javascript z polem formularza. Ponieważ wartości pól wyboru są przekazywane wraz z $ _POST podczas wysyłania, możesz je po prostu pobrać podczas filtru add_image_attachment_fields_to_save i ustawić warunki obiektu postu.
(zwróć uwagę, że używam niestandardowej taksonomii, a nie kategorii, więc musisz zmienić tablicę $ kategorie, aby pasowała do tej samej tablicy, której używasz podczas konfigurowania pól wyboru)
Shabam, shabozzle. Cieszyć się.
źródło
wp_set_object_terms( $post['ID'], $terms, 'image-format' ); return $post;
. A skrypt, który opublikowałeś, nie wykonuje register_custom_taxonomies. Ale zresztą fajny skrypt. Z pewnością skorzystam z tego w przyszłości!Jest to trudne / skomplikowane, jeśli chcesz użyć domyślnego pola kategorii WordPress. Po pierwsze, metabox nie zwraca danych wyjściowych, po prostu je powtarza. Ponadto nie podałby prawidłowej nazwy pola wejściowego, więc nie zapisałby. Jednym z pomysłów może być użycie autouzupełniania interfejsu użytkownika jQuery do replikacji funkcjonalności pola znaczników.
Jeśli jednak chcesz bawić się polami edytora multimediów, możesz podłączyć
'attachment_fields_to_edit'
i edytować tablicę pól. Filtr przekazuje dwa argumenty do wywołania zwrotnego: pierwszy argument to tablica pól, drugi to obiekt postu załącznika. Zobacz tutaj po więcej szczegółów:http://phpxref.ftwr.co.uk/wordpress/nav.html?wp-admin/include/media.php.source.html#l1025
źródło
attachment_fields_to_edit
i zobaczę jak to pójdzie.Stworzyłem wtyczkę, używając @ Wick Media Categories @ RickCurran jako punktu wyjścia. Jednak kategorie multimediów WOS, podobnie jak inne wtyczki, które dodają obsługę kategorii do multimediów, tak naprawdę nie dodają metaboksu, właśnie to zrobiłem.
Jest koniecznie uproszczony z metaboksów na postach i stronach, ale dodałem możliwość filtrowania, która sprawia, że jest łatwy w użyciu.
W rzeczywistości generuję metaboks całej kategorii, który widzisz na stronach i postach, ale ukrywam bity, które nie działają na stronie mediów z powodu zarówno braku stylizacji, jak i brakującego javascript.
Z zadowoleniem przyjmuję wszelkie przemyślenia, jak sprawić, by metaboks był w pełni funkcjonalny - co zamierzam zrobić w późniejszej wersji.
źródło
Świetna wtyczka Rick - bardzo pomocna.
Jeśli przesuniesz wyzwalacz onclick w miejscu zamiast powiązania go z onload (i wprowadzisz kilka innych drobnych poprawek), będzie on działał również w programie do przesyłania zbiorczego Flash. W bieżącej wersji Flash ładuje się po zdarzeniu ładowania jQuery, więc obiekty jeszcze nie istnieją.
poprawione js:
dodaj onclick do pliku wejściowego w pliku php:
dodaj identyfikator formularza przesyłania zbiorczego do pliku css:
}
źródło