Posts in der Kategorie WordPress
Wenn ich auf meinem Blog einen neuen Beitrag erstelle, oder einen aktualisiere/lösche, möchte ich gerne eine CI/CD-Pipeline auf meinem Drone Build-Server starten. Dazu habe ich folgendes Plugin geschrieben: Den Drone CI-Token bekommt man, indem man mit seinem Benutzer links unten auf “Account” klickt. Das Plugin wird einfach im WordPress wp-content/plugins z.B. als start-build.php abgespeichert, und […]
Um zu verhindern, dass nicht-Administratoren auf das Admin-Dashboard zugreifen können, registrieren wir zuerst einen Listener, der triggert, sobald jemand dieses abrufen möchte: add_action(‘admin_init’, ‘dashboard_for_admins_only’); Der Code für die Funktion dashboard_for_admins_only sieht wie folgt aus: function dashboard_for_admins_only() { // Trotzdem Zugriff auf Admin-AJAX zulassen if($_SERVER[‘PHP_SELF’] == ‘admin-ajax.php’) return; // Administratoren den Zugriff erlauben if(current_user_can(‘manage_options’)) return; // […]
Möchten wir einen Benutzer einloggen, benötigen wir erst einmal seine ID. Ein Beispiel, wie wir einen Benutzer über seine Email auslesen können: $user = get_user_by(’email’, ‘[email protected]’); Um den Benutzer dann einzuloggen, wenn er erfolgreich aus der Datenbank geladen wurde: if($user) { wp_set_current_user($user->ID, $user->user_login); wp_set_auth_cookie($user->ID); do_action(‘wp_login’, $user->user_login); }
In der wp-includes/pluggable.php finden wir die Funktion wp_hash_password, welche (ohne den Code für die Plugins) wie folgt aussieht $s = new PasswordHash(8, true); echo $s->HashPassword(‘test’); In selbiger Datei finden wir ebenfalls die Funktion wp_check_password, welche auf folgende Art und Weise Passwörter validiert: $s = new PasswordHash(8, true); $s->CheckPassword(‘test’, ‘$P$123456789012345678901234567890’); Der String, der mit “$P$” anfängt, […]