Wydaje się to dość prostym wymogiem, ale walczę:
Chcę dodać pole opcji do „Dodaj nową witrynę” .
Prosta opcja tekstowa jest w porządku. Jak mam to zrobic?Muszę zapisać tę niestandardową opcję blogu podczas tworzenia witryny.
Wiem, że mogę użyć haka „wpmu_new_blog”, który przekazuje
$meta
zmienną z podanymi opcjami, ale zastanawiam się, czy istnieje sposób, aby to wszystko zrobić w jednym kroku, więc nie muszę wykonywać kolejnego zapytania DB lub jeszcze gorzej , zastąpić / zastąpić cały proces tworzenia witryny?
Uwagi:
Używam WP 3.3.1 z instalacją MultiSite. Piszę wtyczkę, która zawiera listę wszystkich witryn, które pasują do określonej wartości pola niestandardowego (nazwijmy to „typ”).
Ponadto jestem doświadczonym programistą PHP, ale wciąż jestem stosunkowo nowy w hakowaniu WordPress, więc proszę założyć, że nie jestem jeszcze dogłębnie zaznajomiony ze wszystkimi różnymi funkcjami i hakami WP.
Proces rejestracji w wielu witrynach nie jest łatwą modyfikacją. Ma wiele haczyków do zabawy, w przeciwieństwie do innych procesów, ale wydaje się, że nie pasują zbyt dobrze do ciężkich dostosowań, więc rozumiem twoją frustrację.
Jeśli dobrze rozumiem, nie jest to tak skomplikowane, aby osiągnąć to, czego chcesz, chociaż nie może to być jednoetapowe rozwiązanie bez zastąpienia większości domyślnego zachowania WordPress, głównie dlatego, że rejestracja (tj. Kiedy użytkownik prześle niestandardowe informacje) i aktywacja ( tzn. kiedy nowy blog zostanie faktycznie utworzony) dzieje się osobno.
Oto bardzo przybliżony kod, którego będziesz potrzebować, aby zacząć. Mam nadzieję, że poprowadzi cię we właściwym kierunku:
Pamiętać:
Na koniec, jeśli chcesz później przetworzyć wszystkie wartości „extra_field” ze wszystkich istniejących blogów, zdecydowanie zalecam przechowywanie informacji na jednym stole; być może użyj
update_site_option
zamiastupdate_blog_option
tej ostatniej funkcji, tracąc identyfikator blog_id, co w takim przypadku nie jest wymagane.W każdym razie daj nam znać, jak to idzie i powodzenia!
źródło
jeśli spojrzysz na kod site-new.php, uzyskałbyś już odpowiedź - i to nie jest!
Nie ma żadnych warunków sprawdzających, czy coś można dodać do formularza. Jednak przestudiowałem plik i uważam, że musisz ręcznie dodać to pole wejściowe w witrynie site-new.php i przekazać wartość jako meta w tablicy do funkcji wpmu_create_blog, którą znajdziesz gdzieś w pobliżu linii 77. NIE TESTOWANE, ale czytanie na jakiej funkcji może być to, czego szukasz.
źródło