Support » Allgemeine Fragen » Eigenes php in die function.php

  • Gelöst g28fhwolf

    (@g28fhwolf)


    Hallo Ihr,

    ich möchte in die function.php eigenen php code einfügen um die WordPress eigene smtp funktion zu nutzen. WordPress hat ja den PHPMailer integriert, und man kann dort verschiedene Methoden für den Versand von E-Mails auswählen. WordPress hat als Standardmethode einfach phpmail() ausgewählt.
    Das kann geändert werden.

    Den Code habe ich.

    Meine Frage:
    Muss ich den Code VOR
    /* That’s all, stop editing! Happy blogging. */
    einfügen oder geht es auch danach?

    Danke für Eure Bemühungen

    • Dieses Thema wurde geändert vor 3 Jahren, 1 Monat von g28fhwolf.
Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Hm, wollen wir mal vorab ein paar Begriffe klären?

    1. Die Zeile /* That’s all, stop editing! Happy blogging. */ kommt nur in der Konfigurationsdatei wp-config.php vor. Hier solltest du außer der Definition von Konstanten keinen PHP-Code unterbringen.
    2. Themes haben eine Datei functions.php (Plural, „s“ am Ende), in der du Funktionen hinzufügen kannst, die bei der Ausgabe der Webseiten berücksichtigt werden sollen. Problematisch ist aber, dass solche Änderungen bei Theme-Updates überschrieben werden und damit verloren gehen. Deshalb solltest du Änderungen nur an einer functions.php eines Child-Theme vornehmen.
      Wenn es dir zu aufwendig ist, extra für eine kurze Funktion ein Child-Theme anzulegen, kannst du den Code auch mit dem Plugin Code Snippets hinzufügen. Das Plugin hat noch einen weiteren Vorteil: solltest du dich mal beim Code vertun und durch einen Programmierfehler aussperren, kannst du die Änderung wieder rückgängig machen. Das ist entspannter, als per FTP Dateien hoch- und runterzuladen und mit einem externen Editor zu arbeiten.
    3. SMTP ist das Simple Mail Transfer Protocol, das E-Mail-Provider zum Versand von E-Mails nutzen. Wenn wir in WordPress von SMTP sprechen, ist meistens die Nutzung eines E-Mail-Accounts bei einem E-Mail-Provider gemeint, das zum Beispiel genutzt werden kann, wenn PHP nicht sauber konfiguriert wurde und ein normaler Postversand nicht möglich ist. Es gibt Plugins, mit denen du die Zugangsdaten zu deinem E-Mail-Account bei Google, GMX oder was auch immer eintragen kannst, z.B. WP Mail SMTP von WPForms. Um das zu nutzen brauchst du aber keinen Code irgendwo einfügen.
    4. mail ( string $to , string $subject , string $message , array|string $additional_headers = [] , string $additional_params = "" ) : bool ist eine von PHP zur Verfügung gestellte Funktion. Mit Check E-Mail kannst du testen, ob die Mail-Funktion sauber eingerichtet ist und E-Mails verschickt werden.
      Einige E-Mail-Provider gehen anscheinend inzwischen dazu über, nur E-Mails von existierenden E-Mail-Accounts zu akzeptieren. Wenn du also von z.B. wordpress@example.com eine E-Mail versenden möchtest, sollte dieses Account auch beim Webhoster eingerichtet sein (du kannst zusätzlich eine automatische Weiterleitung eintreffender E-Mails an dein normales E-Mail-Account einrichten).
      WordPress hat eine eigene Funktion zum Versand von E-Mails. Die heißt aber auch nicht phpmail() sondern wp_mail().
    5. Code den du hast aber nicht zeigst, können wir nicht beurteilen.

    Vielleicht hilft das schonmal ein wenig, das eine oder andere Missverständnis zu klären? Auch wenn es dir wie Erbsenzählerei vorkommt: präg dir von vornherein die richtigen Begriffe ein, weil du sonst irgendwann eine funktion.php erstellst und dich wunderst, wieso nichts klappt, bis du dich wieder daran erinnerst dass die Datei functions.php heißt. Und bis dahin sind dann vier unbezahlte Stunden vergangen …

    Muss ich den Code VOR
    /* That’s all, stop editing! Happy blogging. */
    einfügen oder geht es auch danach?

    Das ist eigentlich egal, aber auch nicht empfehlenswert, es sei denn, du hast Child-Theme. Bei einem Update des Themes musst du damit rechnen, dass die function.php überschrieben wird, was bei einem Child-Theme nicht der Fall ist.

    Edit: zu langsam 🙁

    • Diese Antwort wurde geändert vor 3 Jahren, 1 Monat von bscu.
    • Diese Antwort wurde geändert vor 3 Jahren, 1 Monat von bscu.

    Edit: zu langsam 🙁

    Egal! Hauptsache, wir sind uns bei der Antwort einig. 🙂

    Thread-Starter g28fhwolf

    (@g28fhwolf)

    Danke für Eure ausführlichen Antworten.

    Sorry, hatte ich verwechselt. Ich meinte die functions.php vom Theme.
    Ich wollte halt nur ein weiteres Plugin vermeiden und die Hauseigenen Möglichkeiten von WP nutzen.

    Thread-Starter g28fhwolf

    (@g28fhwolf)

    Das wäre der Code:

    function mythemename_send_smtp( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host = ‚Host‘;
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = ‚Port‘;
    $phpmailer->Username = ‚User‘;
    $phpmailer->Password = ‚Pass‘;
    $phpmailer->SMTPSecure = ’ssl/tls‘;
    $phpmailer->From = ‚From‘;
    $phpmailer->FromName = ‚Name‘;
    }
    add_action( ‚phpmailer_init‘, ‚mythemename_send_smtp‘ );`

    $phpmailer ist, wie unschwer am vorangestellten $-Zeichen zu erkennen ist, keine Funktion. 🙂

    Freut mich, dass wir helfen konnten.

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Das Thema „Eigenes php in die function.php“ ist für neue Antworten geschlossen.