Die Arbeit mit BuddyPress über WordPress ist eine sehr aufregende Sache, sie fügt der Plattform eine völlig neue Dimension hinzu und zeigt ein enormes Potenzial.
BuddyPress erweitert wie andere Plugins die Kernfunktionalität von WordPress. Obwohl es als Freiberufler oder Unternehmen wichtig ist, zu erkennen, dass BuddyPress im Gegensatz zu anderen Plugins Funktionen mit epischen Proportionen hinzufügt.
Dieses Tutorial soll Ihnen zeigen, wie Sie einen Proof-of-Concept schnell und funktionell demonstrieren können, ohne dabei Kardinalsünden zu schaffen.
Im Verlauf dieses Tutorials verwenden wir eine Kombination aus PHP-, jQuery- und WordPress-Funktionen, um BuddyPress weit genug zu erweitern, um ein Konzept zu demonstrieren.
Bei der Erstellung von Mitgliedsprofilen fügen wir ohne jegliche Hilfe einen Link hinzu, über den Benutzer einen Lesezeichenbereich für Mitglieder aufrufen können.
Der Lesezeichenbereich wird mit einer Liste von Lesezeichen aufgefüllt, die ein Mitglied beim Durchsuchen einer BuddyPress-fähigen Site speichern möchte.
Der Umfang der Lesezeichen, die gespeichert werden können, wird vorerst nur auf WordPress-Posts angewendet. Sie können jedoch weiter darauf aufbauen und sie auf andere Bereiche einer WordPress-basierten Website anwenden, die einen Permalink erzeugt.
Wir werden auf dem bauen bp-default Thema heute und Erstellen eines eigenen Kinderthemas. Nachfolgend sehen Sie die Struktur, die Sie erstellt haben sollten.
style.css - Innerhalb style.css Wir benötigen ein Minimum an Code, um die Themenauswahl über zu ermöglichen wp-admin. Lass uns das jetzt machen.
/ * Name des Themas: Bookmark-Theme Beschreibung: Untergeordnetes Theme von bp-default mit zusätzlicher Unterstützung für Mitglieder-Bookmarks. Version: 1.0 Autor: WPTuts Author URI: http://wp.tutsplus.org Tags: buddypress Vorlage: bp-default * /
Stichworte: buddypress
informiert BuddyPress darüber, dass wir ein BP-fähiges Design verwenden.
Vorlage: bp-default
wird BuddyPress anweisen, dass, wenn dieses Design aktiv ist, seine Funktionalität vom übernommen wird bp-default Thema, es sei denn, eine Motivdatei wurde geändert.
Innerhalb sidebar.php wir müssen das laden widget.php.
locate_template (array ('members / single / bookmarks / widget.php'), true);
Machen wir weiter und registrieren die bookmarks.js Datei, wird es von hier aus auf jeder Seite benötigt. Im Functions.php Folgendes hinzufügen.
function px_bookmark_scripts () if (! is_admin ()) wp_enqueue_script ('px-scripts-functions', get_stylesheet_directory_uri (). '/_inc/js/bookmarks.js', array ('jquery'), '1.0', true ); add_action ('wp_enqueue_scripts', 'px_bookmark_scripts');
wp_enqueue_script
akzeptiert 5 Parameter.
wp_head
. Wenn auf true gesetzt, wird mit geladen wp_footer
.Browser unserer Website können einen WordPress-Beitrag zu ihren Lesezeichen hinzufügen oder entfernen, indem Sie auf einen Anker klicken, der "Zu Lesezeichen hinzufügen" oder "Aus Lesezeichen entfernen" am Ende jedes Beitrags liest.
Wenn einer der Anker angeklickt wird, verwenden wir AJAX und stellen eine Anfrage an ein PHP-Skript. Nach der Ausführung aktualisieren wir das Sidebar-Widget.
Wenn der Browser als Mitglied der Site angemeldet ist, kann er alle "Listen mit Lesezeichen" speichern, die derzeit in der Sitzung gespeichert und im Widget angezeigt werden.
Functions.php…
function px_bookmark_link () global $ post; if (@in_array ($ post-> ID, $ _SESSION ['bookmarks'])): $ content. = 'ID.' "data-post-name =" '. get_the_title ().' "> Aus Lesezeichen entfernen ' ; else: $ content. = 'ID.' "data-post-name =" '. get_the_title ().' "> Zu Lesezeichen hinzufügen '; endif; $ content zurückgeben; add_filter ('the_tags', 'px_bookmark_link');
Diese Funktion wird bei jeder Wiederholung der "Schleife" unter Verwendung aufgerufen add_filter
und the_tags
als unser Haken.
Wir lassen WordPress wissen, dass wir innerhalb dieser Funktion auf Elemente zugreifen möchten $ wp_query
und folglich $ post
. Dies ermöglicht uns das Abrufen die ID
, der Titel
und the_permalink
.
Wenn dieser Code ausgeführt wird, wird einige Logik angewendet, um zu bestimmen, welcher Link angezeigt werden soll. Wenn der Benutzer das Element bereits in seiner aktuellen Sitzung hat, wird der Anker "Aus Lesezeichen entfernen" angezeigt und umgekehrt. in_array ()
erlaubt es uns, dies zu überprüfen.
in_array ()
kennzeichnet Benachrichtigungen, wenn Fehler melden
hat diese Direktive, wir benutzen die @
Symbol, um diese Hinweise zu unterdrücken (hacky).
Verwenden der zurückgegebenen Daten in $ post
Wir bilden zwei Anker zum Hinzufügen und Entfernen von Lesezeichen (alle Daten
wichtige Attribute), die später bei unseren AJAX-Aufrufen verwendet werden bookmarks.js.
Eine vollständige Übersicht der verfügbaren Filter finden Sie im Kodex.
Jetzt haben wir unseren Link eingerichtet. Lassen Sie uns das Widget erstellen, das jederzeit in der Seitenleiste angezeigt wird und bei Bedarf gefüllt oder geleert wird.
Das Bild oben zeigt die Endzustände des Widgets in 3 Szenarien.
Der nächste Codeblock wird in eingefügt widget.php und verschachtelt in HTML-Markup.
if ($ _ SESSION ['bookmarks']): foreach ($ _ SESSION ['bookmarks'] als $ key => $ value): $ keys [] = $ key; $ start_count = min ($ keys); endforeach; endif; für ($ i = $ start_count; $ i < $start_count + count($_SESSION['bookmarks']); $i++) : if($_SESSION['bookmarks'][$i]) : $bookmark = get_post($_SESSION['bookmarks'][$i]); echo '
Beim Erstellen dieses Projekts trat ein Problem mit den Sitzungsdaten auf, die bei der Ausgabe ständig auftauchten. Einige Werte wurden entfernt, der Schlüssel blieb jedoch erhalten. Einstellen a $ start_count
Dieses später beim Drucken der Sitzungsdaten verwendete Problem löste dieses Problem.
Wichtig ist hier zu beachten, wie Elemente abgerufen werden $ _SESSION ['Lesezeichen']
das wird in der nächsten Stufe erstellt.
Bei jeder Iteration verwenden wir get_post ()
die WordPress-Datenbank mit den gespeicherten Integer-Werten in abzufragen $ _SESSION ['Lesezeichen']
. Welches alle von Menschen lesbaren Daten zurückgibt, die wir brauchen.
if (is_user_logged_in ()): // Schaltfläche SAVE anzeigen ansonsten: // Nachricht "LOGIN TO SAVE" anzeigen. endif; if ($ _ SESSION ['bookmarks']): // CLEAR-Schaltfläche anzeigen endif;
Dieses letzte Stück Logik widget.php Legt fest, welche Schaltflächen und Text neben dem Widget angezeigt werden, abhängig vom Status der aktuellen Sitzung und
auch wenn der Benutzer an- oder abgemeldet ist.
jQuery ist großartig, hier verwenden wir die delegieren
Methode und lauschen Sie unseren wichtigen Ankern auf Klicks. Wir prüfen, ob die folgenden Elemente angeklickt werden.
Lesezeichen hinzufügen
Löschen-Lesezeichen
klare Lesezeichen
Verwenden hasClass
Wir können testen, welcher Artikel innerhalb der Delegat-Methode angeklickt wurde und den gewünschten Service liefern AJAX
Anruf.
Sollten Sie dies in ein größeres Projekt einbauen, erwägen Sie die Verwendung eines Pubsub Muster.
var $ bookmark_widget = $ ('# px-bookmarks'), $ bookmark_form = $ ('# px-bookmarks form'), $ bookmark_widget_list = $ ('# px-bookmarks .current-bookmarks'), $ empty_widget = $ ( '# px-bookmarks p'), $ widget_buttons = $ ('# px-bookmarks .widget-buttons'), $ login_notify = $ ('# px-bookmarks .login-notify'), // Dies sollte in geändert werden reflektiere deine Domain. $ ajax_path = 'http://yoursite.com/wp-content/themes/bookmark-theme/members/single/bookmarks/ajax.php';
Zuerst einige Variablen protokollieren, damit wir nicht zu viel "im DOM herumspritzen". Alle oben genannten DOM-Selektoren befinden sich darin widget.php.
$ (". add-bookmark, .delete-bookmark, .clear-bookmarks"). delegate (this, 'click', function (e) e.preventDefault (););
Wir weisen jQuery an, auf alle aufgelisteten Klassen zu klicken, und über die Rückruffunktion sagen wir ihm, was zu tun ist. Die nächsten hinzuzufügenden Teile des Codes werden direkt danach eingefügt e.preventDefault ()
.
Verwenden Standard verhindern()
ist eine intelligentere Methode zum Annullieren der Standardaktion, wenn JavaScript vorhanden ist. Hier ist eine Diskussion rund um Standard verhindern()
bei Stapelüberlauf.
Die nächsten hinzuzufügenden Teile des Codes werden direkt danach eingefügt e.preventDefault ()
.
var $ post_id = $ (this) .data ('post-id'), $ post_name = $ (this) .data ('post-name'), $ post_href = $ (this) .attr ('href'), $ that = $ (this);
Nachdem ein Benutzer auf einen der "wichtigen Anker" geklickt hat, müssen wir die Datenattributwerte speichern, die in Schritt 2 an Anker angehängt wurden. Auf diese Weise können wir die gewünschten Daten senden und abrufen.
Der nächste Code kann ein wenig ausführlich werden, da Elemente angezeigt und ausgeblendet werden, die darauf basieren, auf welches Element geklickt wurde. Mit diesem Vor-Cursor ist der folgende Code der
ein Minimum, das ohne Ästhetik funktioniert. Laden Sie jedoch bitte die Quelle herunter und sehen Sie sich diese Zeilen an.
if ($ that.hasClass ('add-bookmark')) $ .ajax (url: $ ajax_path + '? method = add'), Typ: 'GET', Daten: 'post_id =' + $ post_id, success: function (returndata) if ($ bookmark_widget_list.children (). length === 0) // einblenden / ausblenden $ bookmark_widget_list.prepend ('
Hier benutzen wir hasClass
Um zu unterscheiden, auf welches Element geklickt wurde, verwenden Sie jQuery, um nach dem angeklickten Element zu suchen.
Basierend auf dem Ergebnis richten wir unsere ein AJAX
jedes Mal ein bisschen anders anrufen. Mit dem url
und Daten
angefordert und gesendet werden, jedes Mal leicht geändert.
Beachten ?method = add
angehängt an $ ajax_path
. Dies ist das Äquivalent von http://site.com/path/to/ajax.php?method=add
.
Wenn Sie ein Lesezeichen für die aktuelle Sitzung hinzufügen, müssen Sie nur unseren PHP-Code mit der ID dieses Beitrags übergeben, der im gespeichert wurde $ post_id
Variable.
Wenn jQuery eine erfolgreiche Antwort erhält, hängen wir dieses Element als Listenelement an die aktuelle Lesezeichenliste im Widgetbereich an. Verwenden $ post_id
, $ post_name
und $ post_href
Hier.
Wenn die Seite aktualisiert wird, wird der Code hinzugefügt widget.php in Schritt 3 tritt ein.
In Zeile 7 des letzten Ausschnitts befindet sich eine kleine Subroutine innerhalb der Erfolg
Diese Methode bestimmt, ob Listenelemente im Widgetbereich vorhanden sind. Dies ist der zuvor erwähnte, leicht verbose Code, der nichts anderes tut, als einige DOM-Elemente ein- und auszublenden. Es wurde zur besseren Lesbarkeit hier auf Wptuts + entfernt. Weitermachen…
if ($ that.hasClass ('delete-bookmark')) $ .ajax (url: $ ajax_path + '? method = delete'), Typ: 'GET', Daten: 'post_id =' + $ post_id, success: function (returndata) if ($ bookmark_widget_list.children (). Länge <= 1) // Show / hide $('#bookmark-'+ $post_id).remove(); );
Ähnlich wie if ($ that.hasClass ('add-bookmark'))
Hier wird nach geklickten Elementen gesucht, die die Klasse haben Löschen-Lesezeichen
.
Sobald dieses Unterprogramm eingegeben wurde, wird die url
In AJAX wird der Aufruf durch Senden einer anderen Abfragezeichenfolge geringfügig geändert. Nämlich ?method = löschen
.
Wenn eine erfolgreiche Antwort zurückgegeben wird, entfernen wir das Listenelement aus den aktuellen Lesezeichen, die im Widget gespeichert sind.
Anwenden einiger Logik auf dieselbe Weise wie beim Lesezeichen hinzufügen
Subroutine, um zu bestimmen, ob das entfernte Element das letzte Element ist. Aufgrund dieses Ergebnisses werden DOM-Elemente hier wieder angezeigt oder ausgeblendet.
if ($ that.hasClass ('clear-bookmarks')) $ .ajax (url: $ ajax_path + '? method = clear'), success: function (returndata) // $ ('. postmetadata anzeigen / verbergen). delete-bookmark '). each (Funktion (Index) // Lesezeichenliste gelöscht, Ankerpunkte an Posts werden auf Standard gesetzt. $ (this) .removeClass (). addClass (' add-bookmark '). html (' Add to Lesezeichen ');););
Das letzte Code-Snippet hier wird verwendet, um alle Lesezeichen im Widget zu löschen, indem Sie die Option setzen url
Abfragezeichenfolge an eine andere Methode und Zurücksetzen von Ankern auf der Seite auf den Standardwert "Zu Lesezeichen hinzufügen", um ein leeres anzuzeigen $ _SESSION
. Dies geschieht durch die Verwendung von jQuery jede Methode
um alle Vorkommen der Klasse zu finden Löschen-Lesezeichen
(Anker an Pfosten befestigt mit add_filter
) und auf die Standardeinstellung zurücksetzenLesezeichen hinzufügen
.
Jetzt erstellen wir den PHP-Code, auf den in den oben genannten AJAX-Aufrufen verwiesen wird. Dieser Code wird zum Hinzufügen, Löschen und Löschen aller Lesezeichen der Sitzung verwendet.
Innerhalb ajax.php Wir werden die folgenden 3 Funktionen erstellen.
Lesezeichen hinzufügen()
delete_bookmark ()
clear_bookmarks ()
Lassen Sie uns zuerst erstellen Lesezeichen hinzufügen()
Funktion add_bookmark () $ post_id = $ _GET ['post_id']; if (@! in_array ($ post_id, $ _SESSION ['bookmarks']))): $ _SESSION ['bookmarks'] [] = $ post_id; endif;
Zuerst lagern wir die $ post_id
vorher in übergegangen bookmarks.js über data: 'post_id =' + $ post_id
.
Als nächstes benutzen wir die in_array
Funktion erneut, um zu bestimmen, ob dieses Element der Lesezeichen-Sitzung hinzugefügt werden soll.
Funktion delete_bookmark () $ post_id = $ _GET ['post_id']; foreach ($ _ SESSION ['bookmarks'] als $ key => $ value): $ keys [] = $ key; endforeach; $ start_count = min ($ keys); if (@in_array ($ post_id, $ _SESSION ['bookmarks']))): für ($ i = $ start_count; $ i < $start_count + count($_SESSION['bookmarks']); $i++) : if($_SESSION['bookmarks'][$i] === $post_id) : unset($_SESSION['bookmarks'][$i]); endif; endfor; endif;
Innerhalb des delete_bookmark ()
Funktion speichern wir wieder $ post_id
.
Verwenden Sie die gleiche Technik, um unsere Lesezeichen in auszugeben widget.php ein $ start_count
ist festgelegt.
Als Nächstes ermitteln wir, ob der Artikel bestanden wurde ($ post_id
) existiert innerhalb der Lesezeichen-Sitzung über in_array
, und setzen Sie alle Werte zurück, die übereinstimmen.
function clear_bookmark () session_start (); session_unset (); session_destroy ();
Endlich, das clear_bookmark ()
Funktion zerstört alle Sitzungsdaten.
Wir benötigen ein weiteres Stück Code, damit diese Datei vollständig ist. Gehen Sie zum Anfang der Datei und fügen Sie Folgendes hinzu.
session_start (); $ method = $ _GET ['method']; switch ($ method) case "add": add_bookmark (); brechen; Fall "löschen": delete_bookmark (); brechen; Fall "clear": clear_bookmark (); brechen;
Wir gebrauchen session_start ()
um die aktuelle Sitzung fortzusetzen. Das ist hier entscheidend.
Als Nächstes speichern wir die Methode, die mit gesendet wird url
in unserer $ .ajax
Anrufe.
Basierend auf dem aktuellen Wert von $ -Methode
Wir nennen die entsprechende Funktion.
Die Dateien, die wir für den Rest dieses Tutorials behandeln werden, sind unten aufgeführt.
Innerhalb home.php Wir fügen der ungeordneten Liste im Div ein Listenelement mit einer ID von hinzu item-nav
.
Verwendung der $ bp
global können wir schnell die benötigte URL bilden.
global $ bp; Echo '
Dies ist eine der kleineren Sünden, die wir unterwegs machen, um den Proof of Concept zu demonstrieren. Hier gilt es jedoch, den Proof-of-Concept und die zügige Entwicklung zu wiederholen.
Wenn wir uns dazu entscheiden, diese Funktion mehr zu erweitern, würden wir BuddyPress-Hooks verwenden.
if ($ _ GET ['component'] == 'bookmarks'): locate_template (array ('mitglieder / single / bookmarks / view.php'), true);
Immer noch drinnen home.php Wir prüfen anhand der Abfragezeichenfolge, die es uns ermöglicht, benutzerdefinierte Vorlagen bereitzustellen.
if (! $ _ GET ['action']): locate_template (array ('members / single / bookmarks / loop.php'), true); elseif ($ _ GET ['action'] == 'save' && is_user_logged_in () && bp_is_home ()): locate_template (array ('members / single / bookmarks / save.php'), true); elseif ($ _ GET ['action'] == 'remove' && is_user_logged_in () && bp_is_home ()): locate_template (array ('members / single / bookmarks / remove.php'), true); endif;
Innerhalb view.php (unser Vorlagenladeprogramm für die Schichtverschiebung) Wir prüfen, ob 2 Aktionen vorhanden sind. Wenn keine definiert ist, wird die Liste der gespeicherten Lesezeichen angezeigt.
Zurück in Schritt 3 wurde eine Logik hinzugefügt, um basierend auf dem aktuellen Status von zu bestimmen, welche Anker im Widget angezeigt werden sollen $ _SESSION ['Lesezeichen']
und ob der Benutzer angemeldet ist oder nicht.
Erstellen wir eine kleine Tabelle in der Datenbank, in der eine Liste von Lesezeichen gespeichert wird, die jedem Mitglied entsprechen.
DROP TABLE WENN EXISTS 'Bookmarks' vorhanden sind; CREATE TABLE 'bookmarks' ('id' int (11) NOT NULL AUTO_INCREMENT, 'user_id' int (11) NOT NULL, 'Erstellungsdatum' NOT NULL, 'post_ids' text NOT NULL, 'list_name' text NOT NULL, PRIMARY KEY ('Ich würde') )
Das obige MySQL-Programm erstellt eine neue Tabelle mit 5 Feldern, in der wir Lesezeichen-Daten speichern können.
Einmal erstellt, ist es Zeit zu ziehen save.php.
Während der Benutzer zugreift save.php Wir werden ein Formular mit einer Texteingabe vorlegen, in dem der Benutzer der Liste der Lesezeichen, die er speichern möchte, ein Etikett geben soll.
Sobald ein Label bereitgestellt wurde, speichern wir jede Lesezeichenliste als Zeile in der Datenbank (für einen späteren Abruf) und löschen die aktuelle Sitzung.
if (! $ _ POST ['px-bookmark-listenname']): // Formular anfragen, das der Liste einen Namen geben soll // Phase 1 elseif ($ _ POST ['px-bookmark-listenname']): / / Label gelieferter Speicher in der Datenbank. // Stufe 2 endif;
Jetzt in Stufe 1 von save.php…
// Wenn das Formular gesendet wurde, aber kein Etikett geliefert wurde, liegt ein Fehler vor. if ($ _ POST ['submit'] &&! isset ($ _ POST ['px-bookmark-list-name'])): echo 'Ein Etikett ist erforderlich.
'; endif; // Festlegen des Startzählers if ($ _ SESSION ['bookmarks']): foreach ($ _ SESSION ['bookmarks'] als $ key => $ value): $ keys [] = $ key; endforeach; $ start_count = min ($ keys); endif; // Elemente überlaufen und in ausgeblendeten Formularfeldern speichern. für ($ i = $ start_count; $ i < $start_count + count($_SESSION['bookmarks']); $i++) : if($_SESSION['bookmarks'][$i] !== NULL) : $bookmark = get_post($_SESSION['bookmarks'][$i]); echo ''; echo ''; echo ''; Echo ''; endif; endfor;
Zuerst wird ein Fehler angezeigt, wenn kein Etikett geliefert wurde.
Als nächstes verwenden wir die gleiche Technik aus widget.php und ajax.php um einen Startzähler festzulegen und die Sitzungsdaten zu durchlaufen.
Zum Schluss geben wir mit Hilfe von einige Formularfelder aus get_post
.
global $ bp; foreach ($ _ POST ['px-post-id'] als $ value): $ posts_to_save [] = $ value; endforeach; $ posts = serialize ($ posts_to_save);
Während Stufe 2 von save.php wir bekommen Zugang zum $ bp
global.
Wir laufen über die $ _POST
Daten und speichern Sie Beiträge, die als Array gespeichert werden sollen. Dieses wird dann serialisiert und im gespeichert $ Beiträge
Variable.
$ list_name = $ _POST ['px-bookmark-listenname']; $ query = $ wpdb-> insert ('bookmarks', array ('user_id' => $ bp-> login_user-> id, 'created' => aktuelle_zeit ('mysql'), 'post_ids' => $ posts, ' list_name '=> $ list_name), array ('% d ', // Benutzer_id'% s ', // erstellt'% s ', // post_ids'% s '// list_name));
Als Nächstes speichern wir das vom Benutzer für diese Lesezeichenliste bereitgestellte Etikett in einer Variablen und verwenden es WPDB
um die Zeile in die Datenbank einzufügen.
if ($ query): echo ''; Echo ''; session_start (); session_unset (); session_destroy (); sonst: echo 'Liste gespeichert.
'; Echo ''; Echo ''; endif;Es gab einen Fehler.
'; Echo '
Abschließend überprüfen wir, ob die Abfrage erfolgreich war und löschten die Sitzungsdaten, andernfalls wird ein Fehler angezeigt.
Denken Sie daran, in view.php wenn nicht besonders Aktion
eingestellt ist, werden wir laden loop.php. In dieser Datei $ wpdb
wird zum Abrufen und Ausgeben von Lesezeichenlisten verwendet.
global $ bp; $ shown_user = $ bp-> shown_user-> id; $ bookmark_lists = $ wpdb-> get_results ("SELECT * FROM - Lesezeichen WHERE user_id = $ shown_user ORDER BY id DESC");
Verwendung der $ bp
global Die ID des angezeigten Profils wird im gespeichert $ shown_user
Variable.
Als Nächstes führen wir eine Abfrage mit der gespeicherten Tabelle aus $ shown_user
als wo Bedingung.
if ($ bookmark_lists): foreach ($ bookmark_lists als $ bookmark_list): echo $ bookmark_list-> list_name; $ post_ids = unserialize ($ bookmark_list-> post_ids); foreach ($ post_ids als $ post_id): $ bookmark = get_post ($ post_id); echo 'post_name.' "title =" Lesezeichen anzeigen "> '. $ bookmark-> post_title.' '; endforeach; endforeach; endif;
Wenn Ergebnisse zurückgegeben werden, werden sie angezeigt, indem die Daten wiederholt werden und entsprechend ausgegeben werden. Hier machen wir Gebrauch unserialisieren
die Auswirkungen umkehrenserialisieren
die zuvor zum Speichern von Lesezeichen verwendet wurde.
Wir können den vorherigen Codeblock noch einmal hinzufügen.
if (is_user_logged_in () && bp_is_home ()): echo 'shown_user-> domain.'? component = Lesezeichen & action = remove & id = '. $ bookmark_list-> id.' "Liste löschen"; endif;
Dadurch wird dem Titel jeder Liste ein Anker hinzugefügt, der beim Anklicken eine neue Aktion von durchläuft Löschen
zusammen mit der Lesezeichenlisten-ID.
Was uns zu unserer letzten Etappe führt… Lesezeichenliste löschen. Aufmachen remove.php und lassen Sie uns das beenden.
if (isset ($ _ GET ['action']) == 'remove' && isset ($ _ GET ['id'])): $ list_id = $ _GET ['id']; global $ bp; $ user_id = $ bp-> eingeloggt_benutzer-> id; $ query = $ wpdb-> query ("DELETE FROM Lesezeichen WHERE id = $ list_id AND user_id = $ user_id"); if ($ query): echo ''; Echo ''; sonst: echo 'Liste gelöscht.
'; Echo ''; Echo ''; endif; endif;Es gab einen Fehler.
'; Echo '
Zuerst stellen wir sicher, dass die Aktion zum Entfernen festgelegt ist, und es gibt eine ID, um eine kleine Abfrage zu erstellen.
Als Nächstes speichern wir einige Benutzerdaten und führen die Abfrage aus. Benutzer sollten nur Listen löschen können, die zu ihnen gehören $ bp-> eingeloggt_benutzer-> id
hilft uns dabei.
Schließlich senden wir eine Nachricht abhängig vom Ergebnis.
Im Verlauf dieses Tutorials wurde eine Reihe von Techniken angewendet. Mit jQuery, rohem PHP, WordPress-Konventionen und BuddyPress konnten wir eine nette Funktion veranschaulichen, die Sie Ihrer Social-Network-Site mit WordPress und BuddyPress hinzufügen können.
Im Lieferumfang von BuddyPress ist kein Lesezeichen-Manager enthalten, der an Mitgliederprofile angehängt ist. Außerdem gibt es kein Plugin, das genau so funktioniert.
Ein Lesezeichen-Manager ist ein Beispiel, aber es könnte alles sein.
Das Hauptziel dieses Tutorials war es zu zeigen, wie schnell und effektiv Sie mit BuddyPress Hi-Jack betreiben können, um den Proof of Concept zu demonstrieren.
Mit etwas Know-how könnte dies an einem Abend ohne großen Aufwand zusammengestellt werden. Die zeitliche Verpflichtung ist greifbar und könnte in einen monatlichen Wartungsvertrag einbezogen werden.
Wenn ein Client jedoch mehr Funktionen vom Lesezeichen-Manager wünscht, z. B. ein Dashboard-Widget und tiefgreifendere Funktionen, würden Sie in die Bereiche eines Plugins einsteigen.
In diesem Lernprogramm wurden keine Daten bereinigt. Stellen Sie daher sicher, dass Sie diese in einer "realen" Umgebung einsetzen, indem Sie vorher ein wenig Validierung durchgehen.
Ich hoffe, dass Ihnen dieses Tutorial gefallen hat, und falls Sie Unstimmigkeiten feststellen, lassen Sie bitte einen Kommentar und werden mein Bestes geben, um Ihnen dabei zu helfen.