2015-08-05 24 views
7

Utworzyłem niestandardowe pole (pola wyboru) w Wordpress> Użytkownicy> Pola profilu. Moja strona jest witryną omni dla wiadomości, więc zbiera wiadomości z 20 różnych źródeł za pośrednictwem RSS i dodaje ich posty osłów w mojej witrynie Wordpress. W ten sposób moja pole niestandardowe wygląda następująco:Pobieranie i aktualizacja pól niestandardowych użytkownika Wordpress (Checkboxes) - z dowolnego miejsca.

enter image description here

Jeśli jesteś tylko pokażę wszystkie wysłane startową gościem na mojej stronie.

Jeśli jesteś zalogowanym użytkownikiem; wtedy powinieneś być w stanie wybrać i zapisać z 20 źródeł, które chcesz przeczytać na stronie startowej w mojej witrynie. Jest to możliwe, aby wybrać i zapisać dzisiaj, ale tylko z BP stronie Ustawienia użytkownika:

Select and Save sources from BP User Settings

Teraz problem z profilu użytkowników Ustawienia strona jest:

a) nie chcę mieć formularz w zakładce "Profil> Edytuj". Chcę mieć swój formularz na mojej stronie startowej (nad strumieniem wiadomości, dla zalogowanych użytkowników oczywiście) i być może kiedyś w widgecie - w każdym razie - najważniejsza jest swoboda umieszczania (i kształtowania) formularza, gdzie tylko chcę.

b) Formularz zawiera pola Chcę usunąć (nazwa i opis, czyli „źródła” = nazwa pola) itd

Użytkownik na obrazek powyżej, wybierane i zapisywane do czytania wiadomości z 2 różnych źródeł na mojej stronie. Kod, który obsługuje ten znajduje się na stronę główną w moim index.php jest:

$sources = xprofile_get_field_data('sources', $current_user_id, $multi_format = 'array'); 
query_posts(array('category__and'=>array($sources))); 

Pytanie Czy istnieje sposób na zdobycie tego formularza i aktualizować w dowolnym miejscu dla zalogowanych użytkowników? Nie chcę być związany z ideą, że mam tylko formularz na stronie Ustawienia profilu. Chcę, aby użytkownik nadszedł do mojego przepływu wiadomości na stronie startowej mojej witryny, aby użytkownicy mieli wrażenie: "Och, mogę dostosować mój przepływ informacji, jeśli utworzę konto!" - i to powinno być zrobione z dowolnego miejsca dla zalogowanych użytkowników.

+0

Od momentu xprofile edycji funkcje działają w pętli, to chyba łatwiejsze w użyciu niestandardowych zapytań pobierać i zapisywać dane , szczególnie w przypadku jednorazowego użycia. A ponieważ chcesz, aby działała w dowolnym miejscu, powinieneś napisać wtyczkę i użyć ajax'a do przesłania i zapisania. – shanebp

+0

Czy to trudne, że demads własnej wtyczki? Wygląda na to, że powinno być łatwiej, ale wtedy, jeśli tak było, prawdopodobnie znalazłbym na to odpowiedź. Jak wyglądałaby twoja wtyczka? Nie facetem PHP ... –

+0

Powinieneś dodać więcej kodu pokazującego, jak i gdzie generujesz i zapisujesz pola niestandardowe. – alpipego

Odpowiedz

1

Jeśli otrzymuję go poprawnie, chcesz wyświetlić formularz dla zalogowanych użytkowników. Czy próbowałeś

<?php if (is_user_logged_in()) { ... } ?> function? 

można też chcesz zaktualizować pola użytkownika z

update_user_meta()