WordPress

funkcje – Usuń awatar usuniętego użytkownika z listy

  • 17 listopada, 2012
  • 4 min read
funkcje – Usuń awatar usuniętego użytkownika z listy


Kiedy użytkownik twierdzi, że użytkownik A został usunięty, nie usuwasz wszystkich śladów tego użytkownika.

Mianowicie musisz wejść do każdego użytkownika podążającego za A i usunąć go z meta użytkownika. Właśnie dlatego Twoja funkcja pokazuje pustych użytkowników, ponieważ otrzymuje nieaktualne informacje i odnosi się do użytkowników, którzy już nie istnieją

Będziesz chciał to zrobić na deleted_user hak

// when a user is deleted, the deleted_user action is fired
// attach our example_cleanup function to this action/hook
add_action('deleted_user','example_cleanup');

// When the deleted_user action/hook/event is fired, this function will be called
function example_cleanup($user_id){
    // remove this user from the users following this user
}

Nie wiem, czy masz listę użytkowników obserwujących użytkownika, jeśli nie, możesz to zrobić, w przeciwnym razie ta operacja będzie kosztowna, ponieważ będziesz musiał iterować po każdym pojedynczym użytkowniku i usunąć meta, jeśli jest obecna, aby przestać obserwować usuniętego użytkownika

uwaga: unikałbym używania słów kluczowych języka jako nazw zmiennych, więc nie $function $foreach $return Lub $class

W tej chwili masz 2 zestawy zduplikowanych danych. Masz fragment meta mówiący, że A następuje po B, a niektóre dane mówią, że po B następuje A.

Warto przeczytać!  baza danych - Poprawa zapytań wpdb z dużymi danymi

Zamiast więc używać meta użytkownika, użyłbym zamiast tego taksonomii użytkowników. Moja taksonomia użytkowników nazywałaby się „podążaniem”, a każdy termin w taksonomii reprezentowałby użytkownika.

Załóżmy, że mam użytkownika „admin” i mam 5 obserwujących, użytkowników A, B, C, D i E. Każdemu użytkownikowi zostanie przypisany termin „admin” w mojej taksonomii.

Miałbym wtedy bardzo łatwy sposób na sprawdzenie, kto mnie obserwuje i kto podąża. Aby złapać osobę, którą obserwuję, po prostu to robię wp_get_object_terms przekazując mój identyfikator użytkownika zamiast identyfikatora postu. Aby zobaczyć kto mnie obserwuje, chwytam wszystkie obiekty przypisane do hasła, które ma taką samą nazwę jak ja.

Jak utworzyć taksonomię użytkowników?

Zobacz ten artykuł Justina Tadlocka. Obejmuje on wszystko, od interfejsów administratora, poprzez rejestrację taksonomii, po szablon frontendu

Kilka uwag końcowych: będziesz musiał podłączyć się do tworzenia i usuwania użytkowników, aby utworzyć/usunąć powiązane warunki dla tego użytkownika. Zalecałbym używanie nazwy logowania jako terminu ślimak, ponieważ się ona nie zmienia, podczas gdy nazwa wyświetlana oznacza, że ​​musisz wykonać dodatkową pracę.

Korzyści z zrobienia tego w ten sposób:

  • Sprzątanie jest tak proste, jak usunięcie terminu, bez konieczności przeglądania użytkowników i meta użytkowników
  • 1 część danych do przechowywania obserwujących/obserwujących, a nie 2
  • Należy śledzić bardziej logiczną relację w bazie danych
  • Ponieważ zapytania dotyczące taksonomii stają się coraz szybsze, Twoje też
  • Możesz użyć podstawowych interfejsów API WordPress, aby uzyskać dostęp do wszystkich potrzebnych danych, zamiast pisać własne funkcje opakowania, możesz zlecić tę część doświadczonym programistom pracującym nad samym WordPressem, oszczędzając czas
  • O wiele łatwiej jest tworzyć listy lub rankingi osób, które mają najwięcej obserwujących, w ten sam sposób, w jaki możemy uszeregować kategorie, które mają najwięcej postów
  • Przy odrobinie pracy możesz zmodernizować takie rzeczy, jak chmury tagów, aby działały dla obserwujących, pokazując, kto ma najwięcej wizualnie
  • Większość interfejsu administracyjnego otrzymujesz od razu po wyjęciu z pudełka
Warto przeczytać!  WordPress 6.6 Release Candidate 1 – Aktualności WordPress

Wadą jest to, że wymaga większej wiedzy i wymaga większego początkowego wysiłku w przypadku osób niezaznajomionych z interfejsami API


Źródło