在主题函数修改系统通知邮件 美化篇
我觉得有些人说的也对,总贴代码,可能滚去github比较好,但是我爱wordpress,我不会离开这里 /**系统原本定义的mail类型不支持HTML,所以需要挂一个新钩子:comment_notification_headers**/function xhd_mail2admin_2() {if ( '' == $comment-comment_author ) {
我觉得有些人说的也对,总贴代码,可能滚去github比较好,但是我爱wordpress,我不会离开这里
/**系统原本定义的mail类型不支持HTML,所以需要挂一个新钩子:comment_notification_headers**/ function xhd_mail2admin_2() { if ( '' == $comment->comment_author ) { $from = "From: \"$blogname\" "; if ( '' != $comment->comment_author_email ) $reply_to = "Reply-To: $comment->comment_author_email"; } else { $from = "From: \"$comment->comment_author\" "; if ( '' != $comment->comment_author_email ) $reply_to = "Reply-To: \"$comment->comment_author_email\" comment_author_email>"; } $message_headers = "$from\n" . "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"\n"; return $message_headers; } add_filter('comment_notification_headers', 'xhd_mail2admin_2', 10, 2 ); /**在昨天代码基础上的美化**/ function xhd_mail2admin( $notify_message, $comment_id ) { $comment = get_comment( $comment_id ); $post = get_post( $comment->comment_post_ID ); $author = get_userdata( $post->post_author ); if ( $comment->user_id == $post->post_author ) return false; if ( $post->post_author == get_current_user_id() ) return false; if ( '' == $author->user_email ) return false; $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); $IPURL = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$comment->comment_author_IP; $json = file_get_contents($IPURL); $json = json_decode($json, true); $json = $json["country"].$json["province"].$json["city"].$json["district"].$json["isp"]; $notify_message = sprintf( __( '<div style="font: 12px 微软雅黑;width: 600px;margin: 20px auto;word-break: break-all;"> <table border="0" style="font: 15px 微软雅黑;border-collapse: collapse;width: 600px;margin: 20px auto;"><tbody> <tr> <td style="text-align: center;padding: 8px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;" colspan="2">您的文章《%s》有新评论' ), $post->post_title ) . '</td>'; $notify_message .= sprintf( __('</tr> <tr> <td style="padding: 8px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;width: 70px;">昵称 :</td> <td style="padding: 8px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;"> %s '), $comment->comment_author ) . '</td>'; $notify_message .= sprintf( __('</tr> <tr> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">IP :</td> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;"> %1$s ( %2$s ) '), $json, $comment->comment_author_IP ) . '</td> </tr> <tr> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">'; $notify_message .= sprintf( __('网站 :</td> <td style="padding: 8px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;"> %s'), $comment->comment_author_url ) . '</td> </tr> <tr> <td style="padding: 8px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">'; $domain1 = $comment->comment_author_url ; $domain=substr($domain1,7); $startUrl = "http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&q=info:"; $resultUrl = $startUrl.$domain."&ch=".app_hash_url($domain); $array = get_headers($resultUrl,1); if(!preg_match('/403/',$array[0])){ $pageContent = file_get_contents($resultUrl); $pageRank = substr($pageContent,9); $notify_message .= sprintf( __('PR : </td> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;"> %s'), $pageRank ) . '</td> </tr> <tr> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">'; } else { $notify_message .= __('PR : </td> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">0 ') . '</td> </tr> <tr> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">'; } $notify_message .= __('<div>评论内容 :</div> </td> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">') . $comment->comment_content . '</td> </tr> <tr> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;">'; $notify_message .= sprintf( __('固定链接 :</td> <td style="padding: 6px 15px;font: 15px 微软雅黑;border: 1px solid #ccc;"> %s'), get_comment_link($comment) ) . '</td> </tr> </tbody></table> <br><div style="margin-left:10px">'; if ( EMPTY_TRASH_DAYS ) $notify_message .= sprintf( __('Trash it: %s'), admin_url("comment.php?action=trash&c=$comment_id") ) . "<br>"; else $notify_message .= sprintf( __('Delete it: %s'), admin_url("comment.php?action=delete&c=$comment_id") ) . "<br>"; $notify_message .= sprintf( __('Spam it: %s'), admin_url("comment.php?action=spam&c=$comment_id") ) . "<br> </div> </div>"; return $notify_message; } add_filter( 'comment_notification_text', 'xhd_mail2admin', 10, 2 );
效果见上一篇附图
原文地址:在主题函数修改系统通知邮件 美化篇, 感谢原作者分享。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Am 29. Juli nahm Yu Chengdong, Huawei-Geschäftsführer, Vorsitzender von Terminal BG und Vorsitzender von Smart Car Solutions BU, an der Übergabezeremonie des 400.000sten Neuwagens von AITO Wenjie teil, hielt eine Rede und kündigte an, dass die Modelle der Wenjie-Serie dies tun werden Dieses Jahr auf den Markt kommen Im August wurde die Huawei Qiankun ADS 3.0-Version auf den Markt gebracht und es ist geplant, die Upgrades sukzessive von August bis September voranzutreiben. Das Xiangjie S9, das am 6. August auf den Markt kommt, wird erstmals mit dem intelligenten Fahrsystem ADS3.0 von Huawei ausgestattet sein. Mit Hilfe von Lidar wird Huawei Qiankun ADS3.0 seine intelligenten Fahrfähigkeiten erheblich verbessern, über integrierte End-to-End-Funktionen verfügen und eine neue End-to-End-Architektur von GOD (allgemeine Hinderniserkennung)/PDP (prädiktiv) einführen Entscheidungsfindung und Kontrolle), Bereitstellung der NCA-Funktion für intelligentes Fahren von Parkplatz zu Parkplatz und Aktualisierung von CAS3.0

Die Go-Sprache bietet zwei Technologien zur dynamischen Funktionserstellung: Schließung und Reflexion. Abschlüsse ermöglichen den Zugriff auf Variablen innerhalb des Abschlussbereichs, und durch Reflektion können mithilfe der FuncOf-Funktion neue Funktionen erstellt werden. Diese Technologien sind nützlich bei der Anpassung von HTTP-Routern, der Implementierung hochgradig anpassbarer Systeme und dem Aufbau steckbarer Komponenten.

Am 11. April kündigte Huawei erstmals offiziell den 100-Maschinen-Upgradeplan für HarmonyOS 4.2 an. Dieses Mal werden mehr als 180 Geräte an dem Upgrade teilnehmen, darunter Mobiltelefone, Tablets, Uhren, Kopfhörer, Smart-Screens und andere Geräte. Im vergangenen Monat haben mit dem stetigen Fortschritt des HarmonyOS4.2-Upgradeplans für 100 Maschinen auch viele beliebte Modelle, darunter Huawei Pocket2, Huawei MateX5-Serie, Nova12-Serie, Huawei Pura-Serie usw., mit der Aktualisierung und Anpassung begonnen, was bedeutet, dass dass es mehr Benutzer von Huawei-Modellen geben wird, die das gemeinsame und oft neue Erlebnis von HarmonyOS genießen können. Den Rückmeldungen der Benutzer zufolge hat sich das Erlebnis der Modelle der Huawei Mate60-Serie nach dem Upgrade von HarmonyOS4.2 in allen Aspekten verbessert. Vor allem Huawei M

Bei der Benennung von C++-Funktionen ist es wichtig, die Reihenfolge der Parameter zu berücksichtigen, um die Lesbarkeit zu verbessern, Fehler zu reduzieren und das Refactoring zu erleichtern. Zu den gängigen Konventionen für die Parameterreihenfolge gehören: Aktion-Objekt, Objekt-Aktion, semantische Bedeutung und Einhaltung der Standardbibliothek. Die optimale Reihenfolge hängt vom Zweck der Funktion, den Parametertypen, möglichen Verwirrungen und Sprachkonventionen ab.

Der Schlüssel zum Schreiben effizienter und wartbarer Java-Funktionen ist: Halten Sie es einfach. Verwenden Sie eine aussagekräftige Benennung. Bewältigen Sie besondere Situationen. Nutzen Sie entsprechende Sichtbarkeit.

Zu den Vorteilen von Standardparametern in C++-Funktionen gehören die Vereinfachung von Aufrufen, die Verbesserung der Lesbarkeit und die Vermeidung von Fehlern. Die Nachteile sind eingeschränkte Flexibilität und Namensbeschränkungen. Zu den Vorteilen variadischer Parameter gehören unbegrenzte Flexibilität und dynamische Bindung. Zu den Nachteilen gehören eine größere Komplexität, implizite Typkonvertierungen und Schwierigkeiten beim Debuggen.

1. Die SUMME-Funktion wird verwendet, um die Zahlen in einer Spalte oder einer Gruppe von Zellen zu summieren, zum Beispiel: =SUMME(A1:J10). 2. Die Funktion AVERAGE wird verwendet, um den Durchschnitt der Zahlen in einer Spalte oder einer Gruppe von Zellen zu berechnen, zum Beispiel: =AVERAGE(A1:A10). 3. COUNT-Funktion, die verwendet wird, um die Anzahl der Zahlen oder Texte in einer Spalte oder einer Gruppe von Zellen zu zählen, zum Beispiel: =COUNT(A1:A10) 4. IF-Funktion, die verwendet wird, um logische Urteile auf der Grundlage spezifizierter Bedingungen zu treffen und die zurückzugeben entsprechendes Ergebnis.

Kürzlich gab Huawei bekannt, dass es im September ein neues intelligentes tragbares Produkt mit dem Xuanji-Sensorsystem auf den Markt bringen wird, bei dem es sich voraussichtlich um die neueste Smartwatch von Huawei handeln wird. Dieses neue Produkt wird fortschrittliche Funktionen zur Überwachung der emotionalen Gesundheit integrieren. Das Xuanji Perception System bietet Benutzern eine umfassende Gesundheitsbewertung mit seinen sechs Merkmalen – Genauigkeit, Vollständigkeit, Geschwindigkeit, Flexibilität, Offenheit und Skalierbarkeit. Das System nutzt ein Super-Sensing-Modul und optimiert die Mehrkanal-Optikpfad-Architekturtechnologie, wodurch die Überwachungsgenauigkeit grundlegender Indikatoren wie Herzfrequenz, Blutsauerstoff und Atemfrequenz erheblich verbessert wird. Darüber hinaus hat das Xuanji Sensing System auch die Erforschung emotionaler Zustände auf Basis von Herzfrequenzdaten erweitert. Es beschränkt sich nicht nur auf physiologische Indikatoren, sondern kann auch den emotionalen Zustand und das Stressniveau des Benutzers bewerten. Es unterstützt die Überwachung von mehr als 60 Sportarten Gesundheitsindikatoren, die kardiovaskuläre, respiratorische, neurologische, endokrine,
