Pixelbart https://pixelbart.de WordPress Wartungen und Reparaturen Wed, 12 Feb 2025 10:14:12 +0000 de hourly 1 https://pixelbart.de/wp-content/uploads/2024/01/favicon-150x150.png Pixelbart https://pixelbart.de 32 32 Gravity Forms: Deutsches Format für Adressfeld https://pixelbart.de/gravity-forms-deutsches-format-fuer-adressfeld/ Fri, 24 Jan 2025 08:38:39 +0000 https://pixelbart.de/?p=22104 Um das Format in Gravity zu verändern, gibt es leider keine Option; man kann jedoch einen PHP-Filter verwenden, um dies hinzubekommen. Hier erfährst du, was du in deine functions.php einfügen musst, damit die PLZ vor dem Ort gezeigt wird.

add_filter('gform_address_display_format', function ($format, $field) {
    return 'zip_before_city';
}, 10, 2);

Mehr Informationen findest du in der offiziellen Dokumentation zum Filter.

]]>
Rank Math: Spalten in Admintabellen entfernen https://pixelbart.de/rank-math-spalten-in-admintabellen-entfernen/ Wed, 04 Sep 2024 07:54:02 +0000 https://pixelbart.de/?p=22094 Jedes Plugin fügt irgendwelche Spalten in WordPress hinzu. Das ist ziemlich cool, aber auch blöd, wenn deshalb die Tabellen unleserlich werden. Mit Ansicht anpassen, lassen sich die meisten Spalten ausblenden. Dies geschieht jedoch auf Benutzerbasis, weshalb andere Kollegen die Spalten weiterhin sehen können.

Rank Math fügt bspw. unter WooCommerce die Spalten für die SEO Details hinzu, weshalb die gesamte Tabelle gerne völlig auseinanderfällt. Anbei ein kurzes Snippet, mit dem die Spalten für alle Nutzer entfernt werden.

function __remove_rankmath_columns($columns)
{
    unset($columns['rank_math_title']);
    unset($columns['rank_math_description']);
    unset($columns['rank_math_seo_details']);
    return $columns;
}

add_filter('manage_edit-post_columns', '__remove_rankmath_columns'); // CPT: post
add_filter('manage_edit-product_columns', '__remove_rankmath_columns'); // CPT: product

Im Beispiel wird dir auch direkt gezeigt, wie du das für einzelne Custom Post Types (CPT) lösen kannst. Auf offizieller Seite von Rank Math soll der Filter manage_%_columns verwendet werden. Dieser funktioniert aber leider nicht immer. Der obige Code sollte auch als Must-Use-Plugin funktionieren.

]]>
Contact Form 7: Überprüfung nach Spam komplett deaktivieren https://pixelbart.de/contact-form-7-ueberpruefung-nach-spam-komplett-deaktivieren/ Mon, 02 Sep 2024 10:20:36 +0000 https://pixelbart.de/?p=22091 CF7 (Contact Form 7) ist super beliebt und leider auch super anfällig für Fehler sowie Problemchen. Ein Problem, welches gerne unter Strato auftaucht, ist das Flaggen als Spam, beim Nutzen von CF7. Die Spamüberprüfung von CF7 lässt sich glücklicherweise vollständig deaktivieren.

Füge diese zwei Zeilen in deiner functions.php oder dein Plugin ein:

add_filter('wpcf7_spam', '__return_false');
add_filter('wpcf7_skip_spam_check', '__return_true');

Damit wird die Überprüfung ob es sich um Spam handelt innerhalb von CF7 vollständig deaktiviert. Dies ist mit Vorsicht zu genießen.

Du weißt nicht, wohin damit? Lies dir diesen Beitrag oder diesen Beitrag durch.

]]>
WordPress: Dateinamen direkt beim Upload anonymisieren https://pixelbart.de/wordpress-dateinamen-direkt-beim-upload-anonymisieren/ Thu, 16 May 2024 13:07:52 +0000 https://pixelbart.de/?p=22065 Häufig habe ich das Problem, dass Dateinamen, die in die Mediathek hochgeladen worden sind, automatisch mit Zahlen erweitert und fortgeführt werden, weil sie vor dem Hochladen nicht vom Benutzer geändert worden.

Zu anderen Zeiten kommt es auch vor, dass dann etwas wichtigere Dateien nicht umbenannt werden und so einfacher zu erraten sind. Um das Problem zu lösen, findest du hier einen Schnipsel, mit dem die Dateinamen in WordPress direkt beim Upload anonymisiert und randomisiert werden.

add_filter('wp_unique_filename', function($filename, $ext) {
    $uniqueName = bin2hex(random_bytes(16));
    $filename = $uniqueName . $ext;
    return $filename;
}, 10, 2);

Hiermit werden jetzt automatisch alle Dateinamen anonymisiert und randomisiert. Wichtig ist, dass der Code nicht prüft, ob es den Dateinamen schon gibt. Dies müsste man noch ergänzen, bei Bedarf. Für den ersten Schritt sollte dies aber ausreichen, da die Funktion random_bytes ziemlich einzigartige Werte zurückgibt.

Falls du bei dir keine Möglichkeit findest, die Funktion einzubinden, kann dir auch das Plugin helfen, welches ich auf GitHub abgespeichert habe. Du kannst es auch sofort herunterladen, um dir die Suche auf GitHub zu sparen.

Ich glaube, ich habe noch nie einen Beitrag mit so vielen Worden und Werden geschrieben. Trotzdem hoffe ich, dass dir der Beitrag weitergeholfen hat.

]]>
So löst du das Speicherproblem mit Sucuri https://pixelbart.de/so-loest-du-das-speicherproblem-mit-sucuri/ Tue, 16 Apr 2024 15:25:49 +0000 https://pixelbart.de/?p=22038 Wenn du auf deiner WordPress-Website den Schutz von Sucuri genießt, kann es vorkommen, dass du plötzlich auf ein Problem stößt: Das Speichern von Inhalten ist nicht mehr möglich. Doch keine Sorge, dieses ärgerliche Hindernis lässt sich mit wenigen Handgriffen beheben.

Der Grund für dieses Problem liegt oft darin, dass Sucuri den Zugriff auf die WP-JSON API blockiert. Aber keine Panik, die Lösung ist zum Glück recht einfach. Du musst lediglich einen spezifischen Pfad in den Einstellungen von Sucuri freigeben, und schon funktioniert alles wieder wie gewohnt.

Wenn du selbst Zugriff auf die Einstellungen von Sucuri hast, kannst du diesen Pfad freischalten:

wp/v2

Nachdem du diesen Pfad freigegeben hast, kannst du deine Inhalte wieder problemlos speichern. Es ist jedoch wichtig zu beachten, dass durch diese Freigabe der Zugriff auf die API ungeschützt ist. Daher solltest du zusätzliche Sicherheitsmaßnahmen in Betracht ziehen, um deine Website zu schützen.

Wenn du unsicher bist oder keinen direkten Zugriff auf die Sucuri-Einstellungen hast, zögere nicht, deinen Hoster um Unterstützung zu bitten. Sie können dir dabei helfen, den Pfad freizugeben und sicherzustellen, dass deine Website reibungslos läuft.

Alternativ kannst du auch die vollständigen Pfade freigeben, um sicherzustellen, dass alles wieder wie gewünscht funktioniert. Diese Pfade kannst du leicht in den Entwicklertools deines Browsers finden. Suche einfach nach „Fetch/XHR“ und filtere nach „wp-json“ im Pfad. Dort findest du alle Informationen, die du benötigst, um die Freigabe vorzunehmen.

Indem du diese einfachen Schritte befolgst, kannst du das Speicherproblem mit Sucuri schnell und effektiv lösen und deine WordPress-Website wieder in vollem Umfang nutzen.

]]>
PHP: Einen mehrdimensionalen Array durchsuchen https://pixelbart.de/php-einen-mehrdimensionalen-array-durchsuchen/ Thu, 19 Oct 2023 16:00:00 +0000 https://pixelbart.de/?p=21712 Heute möchte ich dir kleine, aber nützliche PHP-Funktionen vorstellen, mit denen du mehrdimensionale Arrays durchsuchen und gewünschten Sub-Array zurückgeben kannst. Im ersten Schritt erfährst du, wie du einfache mehrdimensionale Arrays durchsuchst und anschließend, wie du verschachtelte Arrays durchsuchst.

function search_array($array, $key, $value, $default = false)
{
    return array_column($array, null, $key)[$value] ?? $default;
}

Parameter:

  1. $array: Das mehrdimensionale Array, das du durchsuchen möchtest.
  2. $key: Der Schlüssel, nach dem du suchen möchtest.
  3. $value: Der Wert, den der Schlüssel haben sollte.
  4. $default: Ein optionaler Parameter, der den Wert definiert, der zurückgegeben wird, falls der gesuchte Wert nicht gefunden wird. Standardmäßig ist dieser Wert false

Funktionsweise:

Die Funktion verwendet array_column, um ein Array von Werten aus dem Input-Array zu extrahieren, die einem bestimmten Schlüssel zugeordnet sind. Anschließend wird versucht, den gewünschten Wert im extrahierten Array mit dem angegebenen Schlüsselwert zu finden. Wenn der Wert gefunden wird, wird der zugehörige Sub-Array zurückgegeben. Wenn der Wert nicht gefunden wird, wird der Standardwert zurückgegeben.

Ein praktisches Beispiel:

Stell dir vor, du hast folgendes mehrdimensionales Array:

$personen = [
    ['id' => 1, 'name' => 'Anton', 'alter' => 25],
    ['id' => 2, 'name' => 'Berta', 'alter' => 30],
    ['id' => 3, 'name' => 'Cäsar', 'alter' => 35],
];

Und du möchtest das Sub-Array des Benutzers mit der ID 2 erhalten. Du könntest die search_array Funktion wie folgt verwenden:

$person = search_array($personen, 'id', 2);
print_r($person);

Das Ergebnis wäre:

Array
(
    [id] => 2
    [name] => Berta
    [alter] => 30
)

Wenn der gesuchte Wert nicht existiert, zum Beispiel ID 4, wird false oder ein anderer Standardwert, den du definierst, zurückgegeben.

Wenn die Funktion auch stark verschachtelte, mehrdimensionale Arrays durchsuchen soll, wäre eine rekursive Vorgehensweise angebracht. Hier ist eine modifizierte Version der Funktion, die rekursiv in den verschachtelten Arrays sucht, um den gewünschten Wert zu finden:

function search_nested_array($array, $key, $value, $default = false) {
    foreach ($array as $subArray) {
        if (isset($subArray[$key]) && $subArray[$key] == $value) {
            return $subArray;
        } elseif (is_array($subArray)) {
            $result = search_nested_array($subArray, $key, $value, $default);
            if ($result !== $default) {
                return $result;
            }
        }
    }

    return $default;
}

Wie funktioniert die angepasste Funktion?

Diese angepasste Funktion verwendet Rekursion, um in jedem Sub-Array nach dem gewünschten Schlüssel und Wert zu suchen. Wenn ein Sub-Array den gesuchten Wert enthält, wird es zurückgegeben. Wenn der Wert nicht gefunden wird, wird die Funktion rekursiv aufgerufen, um die nächste Ebene von Sub-Arrays zu durchsuchen. Dieser Prozess wird fortgesetzt, bis der Wert gefunden oder das gesamte Array durchsucht wurde. Wenn der Wert nicht gefunden wird, gibt die Funktion einen Standardwert zurück.

Ein Beispiel zur Verwendung:

Angenommen, du hast ein stark verschachteltes Array, wie dieses hier:

$personen = [
    ['id' => 1, 'name' => 'Anton', 'info' => ['alter' => 25, 'stadt' => 'Berlin']],
    ['id' => 2, 'name' => 'Berta', 'info' => ['alter' => 30, 'stadt' => 'München']],
    ['id' => 3, 'name' => 'Cäsar', 'info' => ['alter' => 35, 'stadt' => 'Hamburg']],
];

Wenn du nun das Sub-Array des Benutzers mit der Stadt „München“ erhalten möchtest, kannst du die search_nested_array Funktion wie folgt verwenden:

$person = <code>search_nested_array</code>($personen, 'stadt', 'München');
print_r($user);

Dies wird den Sub-Array von Berta zurückgeben, obwohl der Schlüssel stadt in einem verschachtelten Array innerhalb des Hauptarrays liegt.

]]>
Benutzerrollen in WordPress ändern und verwalten https://pixelbart.de/benutzerrollen-in-wordpress-aendern-und-verwalten/ Mon, 02 Oct 2023 17:00:00 +0000 https://pixelbart.de/?p=21509 In diesem Beitrag wirst du erfahren, wie man eine Benutzerrolle in WordPress umbenennt. Es ist keine Hexerei, und mit ein bisschen PHP-Kenntnissen und dem richtigen Werkzeug wird es ein Kinderspiel.

Benutzerrollen mit Code ändern

Das Ändern einer Benutzerrolle kann direkt durch das Hinzufügen von Code in die functions.php deines Themes erfolgen oder, für eine einfachere Lösung, durch die Verwendung eines Plugins. Unten erfährst du, mit welchem Plugin du die Benutzerrollen ändern kannst.

Hier ist ein Beispiel, das in eine anonyme PHP-Funktion innerhalb des WordPress init Hooks gesetzt ist:

add_action('init', function () {
    $idDerRolle = 'meine_rollen_id';
    $neuerNameDerRolle = 'Neuer Name';

    $optionName = wpdb->prefix . 'user_roles';
    $roles = get_option($optionName);

    // Überprüfen, ob die Option erfolgreich abgerufen wurde und ob die Rolle existiert
    if ($roles && isset($roles[$idDerRolle]) && $roles[$idDerRolle]['name'] !== $neuerNameDerRolle) {
        $roles[$idDerRolle]['name'] = $neuerNameDerRolle;

        // Überprüfen, ob die Option erfolgreich aktualisiert wurde
        if (!update_option($optionName, $roles)) {
            error_log("Die Rolle '$idDerRolle' konnte nicht auf '$neuerNameDerRolle' aktualisiert werden.");
        }
    } elseif (!$roles) {
        error_log("Die Option '$optionName' konnte nicht abgerufen werden.");
    }
});

In diesem optimierten Code wird der init Hook verwendet, um eine anonyme Funktion auszulösen, sobald WordPress initialisiert ist. Innerhalb dieser Funktion wird der Name der spezifischen Benutzerrolle überprüft. Wenn der aktuelle Name der Rolle sich vom gewünschten neuen Namen unterscheidet, wird eine Aktualisierung vorgenommen. Dies verhindert unnötige Datenbankoperationen, da Änderungen nur dann vorgenommen werden, wenn es tatsächlich einen Unterschied zwischen dem aktuellen und dem gewünschten Namen gibt.

Zusätzlich haben wir Fehlerbehandlungsmechanismen integriert. Sollte es ein Problem beim Abrufen oder Aktualisieren der Rolleninformationen aus der Datenbank geben, wird eine Fehlermeldung im WordPress-Fehlerprotokoll ausgegeben. Dies erleichtert die Diagnose und Behebung von Problemen, die während des Umbenennungsprozesses auftreten können, erheblich.

Die Verwendung von klaren und präzisen Variablennamen sorgt auch für eine bessere Lesbarkeit und Wartbarkeit des Codes. Es ist so strukturiert, dass Entwickler, die nach dir kommen, den Code leicht verstehen und bei Bedarf Änderungen vornehmen können.

Du kannst den Code auch innerhalb eines eigenen Plugins einfügen.

Benutzerrollen mit einem Plugin ändern

Wenn du den Code nicht direkt bearbeiten möchtest oder nach einer benutzerfreundlicheren Methode suchst, gibt es Plugins, die dir dabei helfen können, Benutzerrollen einfach zu verwalten und zu ändern. Eines dieser Plugins ist der User Role Editor.

So gehst du vor:

  1. Installiere und aktiviere das Plugin User Role Editor.
  2. Gehe zu „Benutzer“ > „User Role Editor“ im WordPress Admin-Bereich.
  3. Wähle die Rolle aus, die du umbenennen möchtest.
  4. Ändere den Namen der Rolle im entsprechenden Feld.
  5. Klicke auf „Update“, und voila, der Name der Rolle ist geändert!

Mit dem User Role Editor kannst du nicht nur die Namen der Rollen ändern, sondern auch ihre Fähigkeiten und Berechtigungen anpassen, was es zu einem mächtigen Werkzeug für die Verwaltung von Benutzerrollen in WordPress macht.

Fazit

Ob du dich für den Code-Weg entscheidest oder ein Plugin verwendest, das Umbenennen von Benutzerrollen in WordPress ist relativ einfach und bietet dir eine größere Kontrolle über die Berechtigungen und Funktionen auf deiner Website. Wähle die Methode, die am besten zu deinen Fähigkeiten und Bedürfnissen passt, und fange an, die Benutzerrollen auf deiner Website zu optimieren!

]]>
Steigere die Performance deiner Website mit WP-Optimize https://pixelbart.de/steigere-die-performance-deiner-website-mit-wp-optimize/ Tue, 18 Jul 2023 11:00:49 +0000 https://pixelbart.de/?p=21296 Deine WordPress-Datenbank spielt eine entscheidende Rolle für den reibungslosen Betrieb deiner Webseite. Sie speichert alle Inhalte, Einstellungen und Konfigurationen. Allerdings kann sich im Laufe der Zeit eine Menge unnötiger Datenmüll ansammeln, der die Leistung deiner Webseite beeinträchtigen kann. Zum Glück gibt es ein leistungsstarkes Plugin namens WP-Optimize, mit dem du deine WordPress-Datenbank optimieren und die Gesamtperformance deiner Webseite verbessern kannst. In diesem Beitrag erfährst du, wie du mit dem WP-Optimize Plugin deine Datenbank effizient optimieren kannst.

Warum ist die Optimierung der Datenbank wichtig?

Deine WordPress-Datenbank enthält nicht nur deine Beiträge und Seiten, sondern auch Informationen über Benutzer, Kommentare, Einstellungen und vieles mehr. Im Laufe der Zeit können sich jedoch unnötige Daten ansammeln, wie beispielsweise Spam-Kommentare, nicht verwendete Plugins und Themes, alte Revisionen und abgelaufene Transienten. Diese Daten belasten deine Datenbank und können zu einer verlangsamten Ladezeit deiner Webseite führen.

Datenbankoptimierung mit WP-Optimize

WP-Optimize ist ein leistungsstarkes Plugin, das speziell für die Optimierung von WordPress-Datenbanken entwickelt wurde. Es bietet verschiedene Funktionen, mit denen du deine Datenbank gründlich bereinigen und optimieren kannst. Kostenlos!

  1. Datenbankbereinigung: Mit WP-Optimize kannst du deine Datenbank von unnötigen Daten befreien. Das Plugin erkennt automatisch nicht verwendete Daten wie Spam-Kommentare, abgelaufene Transienten und ungenutzte Tabellen von deinstallierten Plugins. Durch das Entfernen dieser Daten kannst du die Größe deiner Datenbank reduzieren und die Ladezeit deiner Webseite verbessern.
  2. Tabellenoptimierung: WP-Optimize ermöglicht es dir, deine Datenbanktabellen zu optimieren. Durch die Optimierung der Tabellen werden ineffiziente Datenbankstrukturen verbessert, was zu einer schnelleren Datenabfrage und einer besseren Performance führt. Das Plugin sucht automatisch nach Optimierungsmöglichkeiten und kann diese mit nur einem Klick umsetzen.
  3. Geplante Wartung: Damit deine Datenbank immer in einem optimalen Zustand bleibt, bietet WP-Optimize die Möglichkeit, geplante Wartungsaktivitäten durchzuführen. Du kannst Zeitpläne für automatische Bereinigungen und Optimierungen festlegen, um sicherzustellen, dass deine Datenbank regelmäßig aufgeräumt wird. Dadurch sparst du Zeit und deine Webseite läuft reibungslos.
  4. Überwachung der Datenbankleistung: Mit WP-Optimize kannst du die Leistung deiner Datenbank überwachen. Das Plugin liefert dir detaillierte Informationen über die Größe der Datenbank, die Anzahl der Tabellen, Veränderungen im Speicherbedarf und mehr. So kannst du die Auswirkungen von Optimierungen und anderen Änderungen genau im Blick behalten.
  5. Bildoptimierung: WP-Optimize bietet auch Funktionen zur Komprimierung deiner Bilder. Dabei kannst du selbst bestimmen, in welcher Qualität deine Bilder hochgeladen werden. Die Bilder sehen dann für uns so aus wie vorher, werden aber komprimiert, nehmen weniger Platz weg und machen die Seite weniger langsam.
  6. Caching: Mit WP-Optimize kannst du deine Webseite einfach cachen, indem sie statisch gespeichert wird. Dadurch wird die Ladezeit verbessert. Beachte jedoch, dass Caching zu Kompatibilitätsproblemen mit einigen Plugins führen kann. Überprüfe daher regelmäßig, ob alles reibungslos funktioniert.
  7. Minimierung: WP-Optimize bietet die Möglichkeit, deine JavaScript- und CSS-Dateien zu minimieren. Dadurch werden alle Dateien zusammengefasst, unnötige Kommentare entfernt und die Dateien komprimiert. Dies führt zu schnelleren Ladezeiten, da nur noch eine Datei geladen werden muss. Beachte jedoch, dass die Minimierung in einigen Fällen zu Problemen führen kann, wenn zu viele Elemente aus der Datei entfernt werden.

Fazit

Die Optimierung deiner WordPress-Datenbank ist entscheidend, um die Leistung deiner Webseite zu verbessern. Mit dem WP-Optimize Plugin hast du ein leistungsstarkes Werkzeug zur Hand, um deine Datenbank effizient zu optimieren. Durch das Entfernen unnötiger Daten und die Optimierung der Tabellen verkürzt du die Ladezeiten deiner Webseite und bietest eine bessere Benutzererfahrung. Nutze die geplante Wartung und Überwachungsfunktionen von WP-Optimize, um sicherzustellen, dass deine Datenbank stets in einem optimalen Zustand ist. Optimiere deine WordPress-Datenbank mit WP-Optimize und steigere die Gesamtperformance deiner Webseite.

Das Plugin gibt es in verschiedenen Varianten. Die kostenlose Variante ist völlig ausreichend, weshalb du hier nicht zwingend in die Geldbörse greifen musst.

]]>
Erstelle eigene KI-Chatbots mit der ChatGPT-API von OpenAI https://pixelbart.de/erstelle-eigene-ki-chatbots-mit-der-chatgpt-api-von-openai/ Fri, 03 Mar 2023 11:00:00 +0000 https://pixelbart.de/?p=20875 Wenn du auf der Suche nach einer einfachen Möglichkeit bist, Texte zu generieren, dann ist die ChatGPT API eine großartige Option. Die API ist ein großer Sprung nach vorne in der Textgenerierungstechnologie und kann verwendet werden, um eine Vielzahl von Texten zu generieren, darunter Artikel, Blog-Beiträge, Produktbeschreibungen und vieles mehr.

Um die ChatGPT API in WordPress zu verwenden, gibt es zwei grundlegende Methoden: wp_remote_post und wp_remote_get. In diesem Beitrag werde ich dir erklären, wie man beide Methoden verwendet, um Texte zu generieren.

Bevor wir jedoch beginnen, musst du sicherstellen, dass du ein API-Schlüssel hast. Wenn du noch keinen API-Schlüssel hast, kannst du dich auf der offiziellen OpenAI-Website anmelden und einen erhalten. Beachte hierbei, dass das nicht immer kostenlos ist. Schaue dir vorher die Preise an, bevor du dich entscheidest. Wenn deine kostenlose Testzeit abgelaufen ist, musst du deine Kreditkarte hinterlegen und wirst einmal im Monat zur Kasse gebeten.

Weiter unten findest du außerdem ein Beispiel, wie du das gpt-3.5-turbo-Model verwendest, welches erst kürzlich angekündigt wurde. Zuerst wird dir gezeigt, wie du das text-davinci-003-Modell verwendest.

Daten an die API senden

wp_remote_post ist eine Methode in WordPress, die verwendet wird, um Daten an eine Remote-URL zu senden. In diesem Fall werden wir die Methode verwenden, um die Daten an die API zu senden und eine Antwort zu erhalten. Hier ist der Code, den du verwenden kannst:

$openai_api_url = 'https://api.openai.com/v1/engines/davinci-codex/completions';
$openai_api_key = 'API_SCHLÜSSEL';

$args = array(
    'method' => 'POST',
    'timeout' => 45,
    'headers' => array(
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $openai_api_key,
    ),
    'body' => wp_json_encode(
        array(
            'prompt' => 'Dies ist ein Beispieltext',
            'max_tokens' => 100,
            'temperature' => 0.7,
        )
    ),
);

$response = wp_remote_post($openai_api_url, $args);

if (is_wp_error($response)) {
    $error_message = $response->get_error_message();
    echo "Ein Fehler ist aufgetreten: $error_message";
} else {
    $response_body = wp_remote_retrieve_body($response);
    $response_data = json_decode($response_body, true);
    $generated_text = $response_data['choices'][0]['text'];

    echo $generated_text;
}

In diesem Codeblock haben wir zuerst die OpenAI-API-URL und den API-Schlüssel definiert. Dann haben wir die Argumente für die wp_remote_post-Methode festgelegt. Die Argumente enthalten Informationen wie die Anforderungsmethode (POST), die Timeout-Zeit, den Inhaltstyp und den Autorisierungsheader.

Wir haben auch den Body festgelegt, welches die Chat-Prompt-Informationen enthält. In diesem Fall haben wir einen einfachen Beispieltext und einige Optionen wie die maximale Anzahl von Tokens und die Temperatur festgelegt. Die Temperatur bestimmt, wie kreativ die KI in ihren Antworten werden darf. Je höher die Zahl, desto höher Variationen in den Antworten.

Anschließend haben wir die wp_remote_post-Methode aufgerufen und die Antwort auf Fehler überprüft. Wenn es keine Fehler gibt, extrahieren wir den generierten Text aus der Antwort.

Es gibt auch einen aktuelleren Endpunkt der API, der folgendermaßen aussehen kann:

$openai_api_url = 'https://api.openai.com/v1/completions';
$openai_api_key = 'API_SCHLÜSSEL';

$args = array(
    'method' => 'POST',
    'timeout' => 45,
    'headers' => array(
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $openai_api_key,
    ),
    'body' => wp_json_encode(
        array(
            'model' => 'text-davinci-002',
            'prompt' => 'Dies ist ein Beispieltext',
            'max_tokens' => 100,
            'temperature' => 0.7,
        )
    ),
);

$response = wp_remote_post( $openai_api_url, $args );

if ( is_wp_error( $response ) ) {
    $error_message = $response->get_error_message();
    echo "Ein Fehler ist aufgetreten: $error_message";
} else {
    $response_body = wp_remote_retrieve_body( $response );
    $response_data = wp_json_decode( $response_body, true );
    $generated_text = $response_data['choices'][0]['text'];

    echo $generated_text;
}

Vom Prinzip her funktioniert dieser Endpunkt ähnlich, wie der vorherige, nur dass das Model mit angegeben wird. So kann man gleich mehrere Models ansteuern und verschiedene Antworten erhalten.

Neues Modell verwenden

Seit März 2023 ist möglich, das Modell zu verwenden, welches OpenAI für ChatGPT verwendet. Dieses Modell ist nicht nur 10x günstiger, sondern auch schneller. Mehr Details dazu findest du in der Dokumentation und im Blogbeitrag von OpenAI.

Um den neuen API-Endpunkt mit dem gpt-3.5-turbo-Modell zu verwenden, benötigen wir zunächst einen API-Schlüssel von OpenAI. Du kannst den Schlüssel verwenden, den du weiter oben genutzt hast. Hier ist ein Beispielcode, der das neue Modell der ChatGPT-API verwendet, um auf eine Benutzeranfrage zu antworten:

$openai_api_url = 'https://api.openai.com/v1/chat/completions';
$openai_api_key = 'DeinAPIKey';

$args = array(
    'method' => 'POST',
    'timeout' => 45,
    'headers' => array(
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $openai_api_key,
    ),
    'body' => wp_json_encode(
        array(
            'model' => 'gpt-3.5-turbo',
            'messages' => array(
                array(
                    'role' => 'user',
                    'content' => 'Was ist die OpenAI-Mission?'
                )
            )
        )
    ),
);

$response = wp_remote_post( $openai_api_url, $args );

if ( is_wp_error( $response ) ) {
    $error_message = $response->get_error_message();
    echo "Ein Fehler ist aufgetreten: $error_message";
} else {
    $response_body = wp_remote_retrieve_body( $response );
    $response_data = wp_json_decode( $response_body, true );
    $generated_text = $response_data['choices'][0]['message']['content'];

    echo $generated_text;
}

Wir haben den API-Endpunkt https://api.openai.com/v1/chat/completions angesteuert und unseren API-Schlüssel im Header gesendet. Im Body haben wir das messages-Array spezifiziert, das die Benutzeranfrage enthält. In diesem Beispiel hat der Benutzer nach der OpenAI-Mission gefragt.

Wir haben die wp_remote_post-Methode verwendet, um die Anfrage an den API-Endpunkt zu senden. Wenn ein Fehler auftritt, wird eine Fehlermeldung ausgegeben. Andernfalls wird die Antwort decodiert und der generierte Text wird ausgegeben.

Mit diesem Code können wir schnell und einfach einen KI-Chatbot erstellen. Wir können den Code anpassen, um auf verschiedene Benutzeranfragen zu antworten, und wir können auch eine Vielzahl von Antworten ausgeben, je nachdem, was der Benutzer fragt.

Im messages-Array können auch gleich mehrere Antworten geliefert werden. Du kannst auch mehr Fragen auf einmal senden, wenn du mehr Fragen in den Body deiner Anfrage platzierst, da dies auch ein Array ist.

Wichtig zu beachten ist, dass die ChatGPT-API immer noch in der Beta-Phase ist und dass die Genauigkeit der Antworten variieren kann. Dennoch ist das gpt-3.5-turbo-Modell sehr leistungsfähig und liefert in den meisten Fällen präzise Antworten.

Wenn du bisher noch keine Erfahrung mit ChatGPT hast, kannst du dir die beeindruckenden Funktionen der Plattform direkt auf der OpenAI-Website ansehen. Zusätzlich besteht jetzt die Möglichkeit, für $20 pro Monat Zugang zu ChatGPT mit weniger Einschränkungen zu erhalten.

In meinen Komplettpaketen verwende ich ChatGPT, um Marketingtexte zu formulieren. Anschließend lektoriere ich diese Texte, um Inhalte zu schaffen, die ansonsten mühsam selbst entwickelt werden müssten.

ChatGPT und GPT-4

Nachtrag vom 15.03.2023

Gestern wurde GPT-4 veröffentlicht. Es ist zwar noch nichts über die API bekannt, da lediglich ausgewählte Personen Zugriff auf die Endpunkte haben, aber wenn wir davon ausgehen, dass sich nicht viel verändern wird, könnte ein Beispiel mit dem Model gpt-4 folgendermaßen aussehen:

$openai_api_url = 'https://api.openai.com/v1/chat/completions';
$openai_api_key = 'DeinAPIKey';

$args = array(
    'method' => 'POST',
    'timeout' => 45,
    'headers' => array(
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $openai_api_key,
    ),
    'body' => wp_json_encode(
        array(
            'model' => 'gpt-4', // <- Hier ist die Änderung
            'messages' => array(
                array(
                    'role' => 'user',
                    'content' => 'Was ist die OpenAI-Mission?'
                )
            )
        )
    ),
);

$response = wp_remote_post( $openai_api_url, $args );

if ( is_wp_error( $response ) ) {
    $error_message = $response->get_error_message();
    echo "Ein Fehler ist aufgetreten: $error_message";
} else {
    $response_body = wp_remote_retrieve_body( $response );
    $response_data = wp_json_decode( $response_body, true );
    $generated_text = $response_data['choices'][0]['message']['content'];

    echo $generated_text;
}

Hier haben wir das Model in gpt-4 geändert. Die verfügbaren Models können wir bereits in der Dokumentation nachlesen. Hier die Übersicht:

AKTUELLSTES MODELLBESCHREIBUNGMAXIMALE TOKENTRAININGSDATEN
gpt-4Leistungsfähiger als jedes GPT-3.5-Modell, in der Lage, komplexere Aufgaben zu erledigen und für Chats optimiert. Wird mit unserer neuesten Modelliteration aktualisiert.8.192 TokensBis September 2021
gpt-4-0314Ein Schnappschuss von gpt-4 vom 14. März 2023. Im Gegensatz zu gpt-4 erhält dieses Modell keine Updates und wird nur für einen Zeitraum von drei Monaten bis zum 14. Juni 2023 unterstützt.8.192 TokensBis September 2021
gpt-4-32kGleiche Fähigkeiten wie das Basis-gpt-4-Modell, jedoch mit 4-facher Kontextlänge. Wird mit unserer neuesten Modelliteration aktualisiert.32.768 TokensBis September 2021
gpt-4-32k-0314Ein Schnappschuss von gpt-4-32k vom 14. März 2023. Im Gegensatz zu gpt-4-32k erhält dieses Modell keine Updates und wird nur für einen Zeitraum von drei Monaten bis zum 14. Juni 2023 unterstützt.32.768 TokensBis September 2021

Leider sind in Version 4 die Trainingsdaten noch veraltet und gehen bis September 2021. GPT-4 weiß also noch nichts darüber, dass es eigentlich existiert. Hier müssen wir darauf hoffen, dass die Daten noch aktualisiert werden. Grundsätzlich lohnt sich der Umstieg noch nicht so ganz, da GPT-3 aktuell wesentlich schneller und nicht limitiert ist. Als zahlender ChatGPT Plus Nutzer kann man aktuell lediglich 100 Nachrichten innerhalb von 4 Stunden versenden, was nicht wirklich ausreicht, um das Ganze ausgiebig zu testen.

Nachtrag vom 07.11.2023

Es sind neue Modelle mit aktuelleren Trainingsdaten verfügbar. Hier ist die aktuelle Tabelle:

AKTUELLSTES MODELLBESCHREIBUNGMAXIMALE TOKENTRAININGSDATEN
gpt-4Leistungsfähiger als jedes GPT-3.5-Modell, in der Lage, komplexere Aufgaben zu erledigen und für Chats optimiert.8.192 TokensBis September 2021
gpt-4-0314Ein Schnappschuss von gpt-4 vom 14. März 2023. Im Gegensatz zu gpt-4 erhält dieses Modell keine Updates.8.192 TokensBis September 2021
gpt-4-32kGleiche Fähigkeiten wie das Basis-gpt-4-Modell, jedoch mit 4-facher Kontextlänge.32.768 TokensBis September 2021
gpt-4-32k-0314Ein Schnappschuss von gpt-4-32k vom 14. März 2023. Im Gegensatz zu gpt-4-32k erhält dieses Modell keine Updates.32.768 TokensBis September 2021
gpt-4-turboVerbesserte Version des gpt-4 mit Wissen über Weltgeschehnisse bis April 2023 und einer Kontextlänge von 128K, kostengünstiger im Betrieb.128.000 TokensBis April 2023
gpt-3.5-turbo-1106Neue Version des GPT-3.5 Turbo, die bessere Anweisungsbefolgung, JSON-Modus und paralleles Funktionsaufrufen unterstützt.16.000 TokensNicht spezifiziert​¹
¹Die Informationen wurden von OpenAIs offizieller Ankündigungsseite bezogen​​.

Hier nun ein Beispielcode:

$openai_api_url = 'https://api.openai.com/v1/completions';
$openai_api_key = 'DEIN_API_SCHLÜSSEL';

$args = array(
    'method' => 'POST',
    'timeout' => 45,
    'headers' => array(
        'Content-Type' => 'application/json',
        'Authorization' => 'Bearer ' . $openai_api_key,
    ),
    'body' => wp_json_encode(
        array(
            'model' => 'gpt-4-1106-preview', // Für GPT-4 Turbo
            'prompt' => 'Das ist eine Frage für den Chatbot',
            'max_tokens' => 150,
            'temperature' => 0.7,
            'top_p' => 1,
            'frequency_penalty' => 0,
            'presence_penalty' => 0,
        )
    ),
);

$response = wp_remote_post($openai_api_url, $args);

if (is_wp_error($response)) {
    $error_message = $response->get_error_message();
    echo "Ein Fehler ist aufgetreten: $error_message";
} else {
    $response_body = wp_remote_retrieve_body($response);
    $response_data = json_decode($response_body, true);
    $generated_text = $response_data['choices'][0]['text'];

    echo $generated_text;
}
]]>
Wie du mit dem Duplicator Plugin WordPress-Websites sichern und umziehen kannst https://pixelbart.de/wie-du-mit-dem-duplicator-plugin-wordpress-websites-sichern-und-umziehen-kannst/ Thu, 02 Mar 2023 18:00:00 +0000 https://pixelbart.de/?p=20871 In diesem Beitrag zeige ich dir, wie du WordPress-Websites mit dem Plugin Duplicator sichern und auf einen anderen Server oder eine andere Domain umziehen kannst. So sparst du dir die Kosten für einen Umzugsservice und kannst deinen Umzug selbst ausführen. Wenn dir das zu kompliziert ist, kann dir mein Umzugsservice aushelfen.

Website-Sicherung mit Duplicator

Duplicator ist ein einfaches und dennoch leistungsfähiges Plugin, mit dem du eine vollständige Kopie deiner Website und der Datenbank erstellen kannst. Hier sind die Schritte, um eine WordPress-Website mit Duplicator zu sichern:

  1. Installiere und aktiviere das Plugin Duplicator auf deiner WordPress-Website.
  2. Gehe im WordPress-Dashboard zu Duplicator > Pakete.
  3. Klicke auf Neu erstellen, um ein neues Backup-Paket zu erstellen.
  4. Gib dem Paket einen Namen und klicke auf Erstellen.
  5. Warte, bis das Paket erstellt wurde. Das kann, abhängig von der Größe deiner Website, einige Minuten dauern.
  6. Klicke auf Download, um das Paket auf deinen Computer herunterzuladen.

Beachte, dass du bevor das Paket erstellt wird, auch Ordner und Dateien auswählen kannst, die nicht mit in das Paket wandern sollen. Das ist nützlich, wenn du bspw. eine Staging-Umgebung oder Ähnliches mit im Hauptverzeichnis liegen hast, da der Duplicator alle Ordner mit in das Paket nimmt.

Du solltest auch darauf achten, dass du ausreichend Speicherplatz auf dem Server hast, weil das Paket in der Regel auf dem Server gespeichert wird. Wenn du nicht genug Platz hast, schlägt die Erstellung fehl.

Website-Transfer mit Duplicator

Nun, da du eine vollständige Kopie deiner Website hast, kannst du sie auf einen anderen Server oder eine andere Domain umziehen. Hier sind die Schritte, um eine WordPress-Website mit Duplicator umzuziehen:

  1. Lade das Paket und die Installer-Datei auf den Zielserver hoch.
  2. Rufe die Installer-Datei in deinem Webbrowser auf. Beispiel: www.meinedomain.de/installer.php.
  3. Folge den Schritten des Installers, um das Backup-Paket auf dem Zielserver zu entpacken und die Datenbank zu aktualisieren.
  4. Überprüfe die Einstellungen deiner Website und passe sie gegebenenfalls an (z.B. Domainnamen, Permalinks, etc.).

Hier gibt es erst einmal nicht viel zu beachten. Wenn du den Transfer feintunen möchtest, kannst du während des Installationsprozesses oben auf den erweiterten Modus wechseln. Dies ist in den meisten Fällen aber gar nicht notwendig.

Website-Transfer auf demselben Server

Wenn du deine Website auf demselben Server in einem anderen Verzeichnis oder einer anderen Domain umziehen möchtest, kannst du auch den Speicherort in den Einstellungen von Duplicator ändern. Hier sind die Schritte:

  1. Gehe im WordPress-Dashboard zu Duplicator > Pakete.
  2. Klicke auf der Seite „Pakete“ auf „Installer“ oder „Archiv“ (je nachdem, welches du verwenden möchtest).
  3. Klicke auf „Einstellungen“ und ändere den Speicherort.
  4. Klicke auf „Speichern“, um die Änderungen zu speichern.

Wenn du das gemacht hast, kannst du auf der Zielseite im Menü von Duplicator auf Importieren klicken. Dort scrollst du nun nach ganz unten und wenn alles geklappt hast, kannst du dein Paket dort direkt installieren. So sparst du dir das Herunter- und Hochladen der Dateien – was ziemlich praktisch ist, weil viele Hoster gerne den Download frühzeitig beenden, da ein Timeout erzeugt wird.

Vorteile von Duplicator Pro

Duplicator Pro ist die kostenpflichtige Version von Duplicator und bietet zusätzliche Funktionen und Vorteile gegenüber der kostenlosen Version. Hier sind einige der Vorteile von Duplicator Pro:

  • Automatische Backups: Mit Duplicator Pro kannst du automatisch regelmäßige Backups deiner Website erstellen lassen.
  • Cloud-Integration: Du kannst deine Backups in verschiedenen Cloud-Speicher-Diensten speichern, z.B. Dropbox, Google Drive oder Amazon S3.
  • Multi-Site-Unterstützung: Duplicator Pro unterstützt das Sichern von WordPress-Multisites

Beim Speichern des Backups bietet Duplicator Pro einige zusätzliche Funktionen. So können etwa Backup-Intervalle, Cloud-Speicher und mehrere Standorte für die Speicherung von Backups ausgewählt werden.

Das Plugin Duplicator bietet dir eine effiziente und unkomplizierte Möglichkeit, WordPress-Backups zu erstellen und Websites auf einen neuen Server oder eine neue Domain umzuziehen. Wer sich den Prozess sparen möchte, kann auch auf den WordPress-Umzugsservice von mir zurückgreifen. Mit meinem Know-how und der Verwendung von Duplicator Pro wird der Umzug deiner Website schnell und zuverlässig durchgeführt.

Hinweis: Wenn du ein Paket in Duplicator erstellst, kann es manchmal zu Problemen kommen. Wenn das der Fall ist, kann das Aktivieren von DupArchive in den Einstellungen von Duplicator die meisten Probleme lösen. DupArchive ist ein alternativer Archivmodus, der speziell entwickelt wurde, um Probleme bei der Erstellung von Paketen zu beheben. Wenn du also Schwierigkeiten hast, ein Paket zu erstellen, solltest du diese Option aktivieren und es erneut versuchen.

]]>