Heim > CMS-Tutorial > WordDrücken Sie > Mastering WordPress Cron für die Planung von Veranstaltungen

Mastering WordPress Cron für die Planung von Veranstaltungen

Christopher Nolan
Freigeben: 2025-02-19 11:51:14
Original
375 Leute haben es durchsucht

Mastering WordPress Cron für die Planung von Veranstaltungen

Key Takeaways

  • WordPress Cron ist eine Reihe von Funktionen, die die Planung von Aufgaben auf einer WordPress -Site ermöglichen, wenn eine Seite geladen wird. Es unterscheidet sich von Unixs Cron, da es nicht immer auf der Suche nach neuen Aufgaben ist, sondern auf Aufgaben beim Laden von Seite ausführt.
  • Es gibt zwei Arten von Cron -Ereignissen, die geplant werden können: einzelne Ereignisse, die einmal und nie wieder ausgeführt werden, bis sie neu planen, und wiederkehrende Ereignisse, die auf unbestimmte Zeit auf einem festgelegten Zeitplan ausgeführt werden. Beide Typen erfordern die Erstellung einer benutzerdefinierten „Aktion“, die bei Cron registriert werden muss.
  • Ereignisse nicht platzieren sind unerlässlich, insbesondere bei der Verwendung von Plugins, da WordPress weiterhin versucht, Ereignisse auszuführen, auch nachdem ein Plugin deaktiviert oder gelöscht wurde. Um ein Ereignis zu erstellen, muss man den Namen des Hakens und die nächste geplante Zeit für den Cron-Lauf kennen.
  • benutzerdefinierte Cron -Intervalle können eingestellt werden, indem Sie in den Filter von Cron_Schedules und Hinzufügen eines benutzerdefinierten Intervalls einbinden. Dies kann bei der Planung von Ereignissen mit Cron verwendet werden.

WordPress Cron ist eine der nützlichsten Funktionen, die Sie lernen und verstehen möchten, ob Sie wie ich viel Zeit damit verbringen, mit WordPress zu arbeiten.

Mastering WordPress Cron für die Planung von Veranstaltungen

in der Lage, bestimmte Funktionen in einem engen Zeitplan auszuführen, ist für jedes CMS von wesentlicher Bedeutung und WordPress hat eine Reihe von Funktionen, die diesen Prozess sehr einfach und fast mühelos machen.

In diesem Artikel werde ich die folgenden WordPress Cron -Funktionen behandeln:
  • Wie unterscheidet sich WordPress Cron von Ihrem normalen Cron
  • Planen eines wiederkehrenden Ereignisses
  • Planen eines einzelnen Ereignisses
  • platzieren ein Ereignis
  • Angabe benutzerdefinierter Cron -Intervalle

Was ist Cron?

Sie sind wahrscheinlich mit dem Begriff „Cron“ vertraut, da er sich auf den zeitbasierten Scheduler in UNIX-Systemen bezieht und obwohl WordPress 'Cron unterschiedlich ist. Die Hauptidee dahinter ist die gleiche.

Einige Beispiele dafür, wie WordPress das Cron -System intern verwendet

Wie unterscheidet sich WordPress Cron?

Wenn Sie mit Unixs Cron vertraut sind, denken Sie wahrscheinlich, dass WordPress 'Cron immer nach neuen Aufgaben und dem Ausführen von Zeitpunkten ist, wenn sie kommen. Dies ist weit von der Wahrheit entfernt und ich werde erklären, warum in Kürze.

WordPress 'Cron läuft, wenn eine Seite geladen wird, unabhängig davon, ob es sich um eine Front-End- oder Back-End-Seite handelt. Mit anderen Worten, wenn eine Seite auf Ihrer Website geladen wird, prüft WordPress, ob Aufgaben oder Ereignisse vorhanden sind, die sie ausführen und ausführen müssen. Wenn Sie denken, dass dies nicht ideal ist, haben Sie absolut Recht.

Wenn Sie zufällig eine Website haben, auf der nicht zu viel Datenverkehr erfolgt und Sie eine Aufgabe haben, die zu einem genauen Zeitpunkt ausgeführt werden muss, weiß WordPress nicht, dass die Aufgabe fällig ist, bis jemand Ihre Website besucht. Auch wenn es sich um einen Suchmaschinenbot handelt, der Ihre Website krabbelt.

Planungsereignisse mit Cron

Es gibt zwei Geschmacksrichtungen von Cron -Ereignissen, die Sie mit einigen Codezeilen planen können:

  • einzelne Ereignisse - Führen Sie nur einmal und nie wieder aus, bis es erneut verschoben wird.
  • wiederkehrende Ereignisse-Ausführen nach einem Zeitplan und wird so eingestellt, dass sie mit einem Zeitintervall auf unbestimmte Zeit wieder auftreten.

Planen eines wiederkehrenden Ereignisses

Planen eines wiederkehrenden Ereignisses müssen eine benutzerdefinierte „Aktion“ erstellen, die auch bei Cron registriert werden muss. Sobald der Cron ausgeführt wird, wird die an die zuvor erstellte benutzerdefinierte Funktion beigefügt.

Schauen wir uns das folgende Beispiel an, in dem wir täglich Post -Revisionen löschen.

Zuerst erstellen wir unsere benutzerdefinierte „Aktion“, die die Funktion, die wir ausführen möchten, angehängt haben, wenn der Haken von Cron aufgerufen wird.

<span><span><?php
</span></span><span><span>// delete_post_revisions will be call when the Cron is executed
</span></span><span><span>add_action( 'delete_post_revisions', 'delete_all_post_revisions' );
</span></span><span>
</span><span><span>// This function will run once the 'delete_post_revisions' is called
</span></span><span><span>function delete_all_post_revisions() {
</span></span><span>
</span><span>	<span>$args = array(
</span></span><span>		<span>'post_type' => 'post',
</span></span><span>		<span>'posts_per_page' => -1,
</span></span><span>		<span>// We don't need anything else other than the Post IDs
</span></span><span>		<span>'fields' => 'ids',
</span></span><span>		<span>'cache_results' => false,
</span></span><span>		<span>'no_found_rows' => true
</span></span><span>	<span>);
</span></span><span>
</span><span>	<span>$posts = new WP_Query( $args );
</span></span><span>
</span><span>	<span>// Cycle through each Post ID
</span></span><span>	<span>foreach( (array)$posts->posts as $post_id ) {
</span></span><span>
</span><span>		<span>// Check for possible revisions
</span></span><span>		<span>$revisions = wp_get_post_revisions( $post_id, array( 'fields' => 'ids' ) );
</span></span><span>
</span><span>		<span>// If we got some revisions back from wp_get_post_revisions
</span></span><span>		<span>if( is_array( $revisions ) && count( $revisions ) >= 1 ) {
</span></span><span>		  
</span><span>			<span>foreach( $revisions as $revision_id ) {
</span></span><span>
</span><span>				<span>// Do a final check on the Revisions
</span></span><span>				<span>if( wp_is_post_revision( $revision_id ) ) {
</span></span><span>					<span>// Delete the actual post revision
</span></span><span>					<span>wp_delete_post_revision( $revision_id);
</span></span><span>				<span>}
</span></span><span>			<span>}
</span></span><span>		<span>}
</span></span><span>	<span>}
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Für die Planung des wiederkehrenden Ereignisses verwenden wir die Funktion WP_Schedule_Event ($ timestamp, $ recurce, $ Hook, $ args), die 4 Argumente einnimmt:

  • $ timestamp - (Ganzzahl) (erforderlich) Wenn Sie das Ereignis zum ersten Mal benötigen. Dies muss in einem Unix -Zeitstempelformat sein. WP Cron nutzt die UTC/GMT -Zeit, nicht die lokale Zeit. Verwenden Sie Time (), das immer in WordPress GMT ist. (current_time ("timestamp") ist lokaler Zeit in WordPress.)
  • $ Recurce - (String) (erforderlich) Wie oft das Ereignis wieder aufnehmen sollte. Gültige Werte sind "stündlich", "Twicetaily" und "Daily". Wir werden sehen, wie wir später unsere eigenen Zeitintervalle erstellen.
  • $ Hook - (String) (erforderlich) Der Name eines Action -Hooks, der ausgeführt werden soll.
  • $ args - (Array) (optionale) Argumente, die an die Hakenfunktion übergeben werden sollen.

Zuerst stellen wir sicher, dass die Veranstaltung vorher noch nicht geplant wurde, und wenn dies nicht der Fall ist, planen wir es.

<span><span><?php
</span></span><span><span>// Make sure this event hasn't been scheduled
</span></span><span><span>if( !wp_next_scheduled( 'delete_post_revisions' ) ) {
</span></span><span>	<span>// Schedule the event
</span></span><span>	<span>wp_schedule_event( time(), 'daily', 'delete_post_revisions' );
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren

Beachten Sie, dass Sie einen Krawattenabschnitt zu einer Aktion hinzufügen können. Wenn Sie ein Plugin -Autor sind, können Sie das geplante Ereignis so einrichten, dass die Seite für Plugin -Optionen zum ersten Mal ausführt wird. Für ein viel einfacheres Beispiel werden wir es an WordPress 'init -Aktion binden.

<span><span><?php
</span></span><span><span>// Add function to register event to WordPress init
</span></span><span><span>add_action( 'init', 'register_daily_revision_delete_event');
</span></span><span>
</span><span><span>// Function which will register the event
</span></span><span><span>function register_daily_revision_delete_event() {
</span></span><span>	<span>// Make sure this event hasn't been scheduled
</span></span><span>	<span>if( !wp_next_scheduled( 'delete_post_revisions' ) ) {
</span></span><span>		<span>// Schedule the event
</span></span><span>		<span>wp_schedule_event( time(), 'daily', 'delete_post_revisions' );
</span></span><span>	<span>}
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren

Jetzt, da Sie wissen, wie Sie wiederkehrende Ereignisse planen, werfen wir einen Blick darauf, ein einzelnes Ereignis zu erstellen, das nie wieder ausgeführt wird, bis es verschoben wird.

Planen eines einzelnen Ereignisses

So wie der Name schon sagt, ist ein einzelnes Ereignis ein einmal und stoppt dann. Dieses einzelne Ereignis kann bei Bedarf noch erneut verschoben werden.

Das Konzept dahinter ist das gleiche wie die wiederkehrenden Ereignisse. Zuerst registrieren Sie einen benutzerdefinierten Hook, der von Cron aufgerufen wird, wenn er auf dem Server ausgeführt wird. Sobald Cron den Haken anruft, wird seine Funktion ausgeführt und so erledigt Sie die Dinge.

als Beispiel werden wir ein Ablaufdatum für Beiträge festlegen. Beiträge verfallen 30 Tage nach der Veröffentlichung. Wir werden uns mit dem Publish_Post einversetzen, damit wir unser einzelnes Ereignis planen können, sobald der Beitrag veröffentlicht wird, und Count Down beginnt.

Einrichten der Funktion, die den Beitrag nach 30 Tagen löscht.

<span><span><?php
</span></span><span><span>// delete_post_revisions will be call when the Cron is executed
</span></span><span><span>add_action( 'delete_post_revisions', 'delete_all_post_revisions' );
</span></span><span>
</span><span><span>// This function will run once the 'delete_post_revisions' is called
</span></span><span><span>function delete_all_post_revisions() {
</span></span><span>
</span><span>	<span>$args = array(
</span></span><span>		<span>'post_type' => 'post',
</span></span><span>		<span>'posts_per_page' => -1,
</span></span><span>		<span>// We don't need anything else other than the Post IDs
</span></span><span>		<span>'fields' => 'ids',
</span></span><span>		<span>'cache_results' => false,
</span></span><span>		<span>'no_found_rows' => true
</span></span><span>	<span>);
</span></span><span>
</span><span>	<span>$posts = new WP_Query( $args );
</span></span><span>
</span><span>	<span>// Cycle through each Post ID
</span></span><span>	<span>foreach( (array)$posts->posts as $post_id ) {
</span></span><span>
</span><span>		<span>// Check for possible revisions
</span></span><span>		<span>$revisions = wp_get_post_revisions( $post_id, array( 'fields' => 'ids' ) );
</span></span><span>
</span><span>		<span>// If we got some revisions back from wp_get_post_revisions
</span></span><span>		<span>if( is_array( $revisions ) && count( $revisions ) >= 1 ) {
</span></span><span>		  
</span><span>			<span>foreach( $revisions as $revision_id ) {
</span></span><span>
</span><span>				<span>// Do a final check on the Revisions
</span></span><span>				<span>if( wp_is_post_revision( $revision_id ) ) {
</span></span><span>					<span>// Delete the actual post revision
</span></span><span>					<span>wp_delete_post_revision( $revision_id);
</span></span><span>				<span>}
</span></span><span>			<span>}
</span></span><span>		<span>}
</span></span><span>	<span>}
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Ziemlich einfach, oder? Jetzt müssen wir die Veranstaltung planen, sobald der Beitrag tatsächlich veröffentlicht wurde. Um diese Aufgabe zu erfüllen

    $ timestamp - (Ganzzahl) (erforderlich) Die Zeit, die das Ereignis erfolgt. Dies muss in einem Unix -Zeitstempelformat sein.
  • $ Hook - (String) (erforderlich) Der Name eines Action -Hooks, der ausgeführt werden soll.
  • $ args - (Array) (optionale) Argumente, um an die Hakenfunktion zu gelangen.
Hier sehen Sie sich schnell, wie all diese Aktionen und Haken zusammengestellt werden.

<span><span><?php
</span></span><span><span>// Make sure this event hasn't been scheduled
</span></span><span><span>if( !wp_next_scheduled( 'delete_post_revisions' ) ) {
</span></span><span>	<span>// Schedule the event
</span></span><span>	<span>wp_schedule_event( time(), 'daily', 'delete_post_revisions' );
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren
Wir verwenden einige Zeitkonstanten, die WordPress eingerichtet hat, um unser Leben zu erleichtern. Weitere Informationen zu diesen Konstanten finden Sie in "Zeitkonstanten", aber hier finden Sie einen schnellen Überblick:

    minute_in_seconds = 60 (Sekunden)
  • Hour_in_seconds = 60 * minute_in_seconds
  • day_in_seconds = 24 * Hour_in_seconds
  • week_in_seconds = 7 * Day_in_seconds
  • Jahr_in_Seconds = 365 * Day_in_seconds
Planungsereignisse

Jetzt, da Sie wissen, wie Sie wiederkehrende und einzelne Ereignisse planen, wird es auch nützlich sein, zu wissen, wie diese Ereignisse nicht festgelegt werden können.

Sie fragen sich vielleicht, warum Sie Ereignisse entfernen möchten? Es gibt einen guten Grund, insbesondere wenn Sie Ereignisse für Sortierplan in Ihre Plugins aufnehmen.

CRONS werden in der Tabelle WP_OPTIONS und durch einfaches Deaktivieren und Löschen Ihres Plugins gespeichert. WordPress wird immer noch versuchen, Ihre Veranstaltungen auszuführen, obwohl das Plugin nicht mehr verfügbar ist. Bitte stellen Sie jedoch sicher, dass Sie Ereignisse in Ihrem Plugin oder in Ihrer benutzerdefinierten Implementierung ordnungsgemäß nicht platzieren.

Croning-Ereignisse nicht platziert sind relativ einfach. Wir werden wp_next_scheduled () verwenden, um zu finden, wann das nächste Ereignis stattfindet, und nur dann können wir es mit wp_unschessel_event () nicht platzieren.

.

In Anbetracht unseres ersten Beispiels würden wir das Ereignis auf die folgende Art und Weise nicht festlegen.

<span><span><?php
</span></span><span><span>// Add function to register event to WordPress init
</span></span><span><span>add_action( 'init', 'register_daily_revision_delete_event');
</span></span><span>
</span><span><span>// Function which will register the event
</span></span><span><span>function register_daily_revision_delete_event() {
</span></span><span>	<span>// Make sure this event hasn't been scheduled
</span></span><span>	<span>if( !wp_next_scheduled( 'delete_post_revisions' ) ) {
</span></span><span>		<span>// Schedule the event
</span></span><span>		<span>wp_schedule_event( time(), 'daily', 'delete_post_revisions' );
</span></span><span>	<span>}
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren

Cronenintervalle

anpassen

Es ist möglich, benutzerdefinierte Cron -Intervalle festzulegen, die Sie bei der Planung von Ereignissen mit Cron verwenden können. Dazu müssen wir uns nur in den Cron_Schedules -Filter einbinden und unseren eigenen hinzufügen. Werfen wir einen Blick auf das Hinzufügen eines benutzerdefinierten Intervalls, das alle 10 Minuten ausgeführt wird.

<span><span><?php
</span></span><span><span>// delete_post_revisions will be call when the Cron is executed
</span></span><span><span>add_action( 'delete_post_revisions', 'delete_all_post_revisions' );
</span></span><span>
</span><span><span>// This function will run once the 'delete_post_revisions' is called
</span></span><span><span>function delete_all_post_revisions() {
</span></span><span>
</span><span>	<span>$args = array(
</span></span><span>		<span>'post_type' => 'post',
</span></span><span>		<span>'posts_per_page' => -1,
</span></span><span>		<span>// We don't need anything else other than the Post IDs
</span></span><span>		<span>'fields' => 'ids',
</span></span><span>		<span>'cache_results' => false,
</span></span><span>		<span>'no_found_rows' => true
</span></span><span>	<span>);
</span></span><span>
</span><span>	<span>$posts = new WP_Query( $args );
</span></span><span>
</span><span>	<span>// Cycle through each Post ID
</span></span><span>	<span>foreach( (array)$posts->posts as $post_id ) {
</span></span><span>
</span><span>		<span>// Check for possible revisions
</span></span><span>		<span>$revisions = wp_get_post_revisions( $post_id, array( 'fields' => 'ids' ) );
</span></span><span>
</span><span>		<span>// If we got some revisions back from wp_get_post_revisions
</span></span><span>		<span>if( is_array( $revisions ) && count( $revisions ) >= 1 ) {
</span></span><span>		  
</span><span>			<span>foreach( $revisions as $revision_id ) {
</span></span><span>
</span><span>				<span>// Do a final check on the Revisions
</span></span><span>				<span>if( wp_is_post_revision( $revision_id ) ) {
</span></span><span>					<span>// Delete the actual post revision
</span></span><span>					<span>wp_delete_post_revision( $revision_id);
</span></span><span>				<span>}
</span></span><span>			<span>}
</span></span><span>		<span>}
</span></span><span>	<span>}
</span></span><span><span>}</span></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Schlussfolgerung

Mit WordPress 'Cron kann es nicht einfacher sein, und es ist ein sehr schönes und interessantes Werkzeug, das Ihnen sicher hilft, Ihr Plugin robuster zu machen. All diese Funktionen zu lernen und sie in die Praxis um die Anwendungen mit realen Welt zu bringen, ist der beste Weg, um WordPress 'Cron für die Planung von Ereignissen zu meistern.

häufig gestellte Fragen zum Beherrschen von WordPress Cron

Was ist der Unterschied zwischen WP_Schedule_Event und WP_Schedule_Single_Event? Die Funktion WP_Schedule_Event wird verwendet, um ein wiederkehrendes Ereignis zu planen, was bedeutet, dass sie in regelmäßigen Abständen ausgeführt werden, die Sie angeben, z. B. stündlich, täglich oder zweimal täglich. Auf der anderen Seite wird WP_SCHEDULE_SINGLE_EVENT verwendet, um ein einmaliges Ereignis zu planen, das zu einem bestimmten Zeitpunkt in der Zukunft ausgeführt wird. Es ist wichtig, die richtige Funktion auszuwählen, basierend darauf, ob Ihr Ereignis einmal oder wiederholt ausgeführt werden soll.

Warum funktioniert mein WordPress -Cron -Job nicht? Job funktioniert nicht. Ein häufiges Problem ist ein Problem mit den Zeiteinstellungen des Servers. Wenn die Zeit des Servers nicht korrekt festgelegt ist, kann dies zu Planungsproblemen führen. Ein weiteres mögliches Problem ist ein Konflikt mit einem Plugin oder Thema. Einige Plugins oder Themen können das WordPress -Cron -System beeinträchtigen, was es zu Fehlfunktionen führt. Es ist auch möglich, dass Ihr Code ein Fehler gibt. Stellen Sie sicher, dass Sie Ihren Code gründlich testen und Ihre Servereinstellungen überprüfen, wenn Sie Probleme mit WordPress Cron Jobs haben.

Wie kann ich testen, ob mein WordPress -Cron -Job funktioniert? Möglichkeiten zum Testen, wenn Ihr WordPress -Cron -Job funktioniert. Eine Methode besteht darin, ein Plugin wie WP Crontrol zu verwenden, mit dem Sie angezeigt und steuern können, was im WP-CRON-System passiert. Eine andere Methode besteht darin, Debugging -Tools zu verwenden. Indem Sie WP_DEBUG in Ihrer Datei wp-config.php aktivieren, können Sie alle Fehler sehen, die auftreten, wenn Ihr Cron-Job ausgeführt wird. Sie können auch die Funktion der Fehler_log in PHP verwenden, um Fehler in einer Datei zu protokollieren. Job zu bestimmten Zeiten zu laufen. Mit der Funktion WP_Schedule_Event können Sie die Zeit angeben, in der das Ereignis zuerst stattfinden sollte, und das Intervall, in dem es wieder auftreten sollte. Mit der Funktion WP_Schedule_Single_Event können Sie die genaue Zeit angeben, in der das Ereignis auftreten sollte. Diese Funktion erfordert zwei Parameter: den Zeitstempel des Ereignisses und der Aktionshaken der Funktion, die Sie außerhalb dessen möchten. Sobald Sie diese Funktion aufrufen, tritt das angegebene Ereignis nicht mehr auf.

Was ist ein WordPress -Cron -Action -Hook? Wenn Sie eine Veranstaltung planen, verbinden Sie es mit einem Action -Hook. Anschließend können Sie Funktionen an diesem Aktionshaken anhängen, und sie werden ausgeführt, wenn die Veranstaltung ausgeführt wird. Auf diese Weise können Sie bestimmte Aktionen zu bestimmten Zeiten ausführen.

Kann ich WordPress Cron verwenden, um Beiträge zu planen? WordPress selbst verwendet Cron Jobs, um geplante Beiträge zu verarbeiten. Wenn Sie einen Beitrag festlegen, der zu einem zukünftigen Datum veröffentlicht werden soll, plant WordPress einen Cron -Job, um den Beitrag zum angegebenen Zeitpunkt zu veröffentlichen. Kann alle geplanten WordPress -Cron -Jobs mit einem Plugin wie WP Crontrol anzeigen. Dieses Plugin bietet eine benutzerfreundliche Oberfläche, an der Sie alle geplanten Ereignisse, ihre Intervalle und ihre nächsten Laufzeiten sehen können. Sie können es auch verwenden, um Cron -Jobs hinzuzufügen, zu bearbeiten oder zu löschen.

Kann ich einen WordPress -Cron -Job manuell ausführen? Sie können dies mit einem Plugin wie WP Crontrol tun, mit dem Sie alle Cron -Events sofort ausführen können. Dies kann zum Testen und Debuggen von Zwecken nützlich sein. Es ist kein echter Cron -Job, da er nicht auf Serverebene ausgeführt wird. Stattdessen wird ausgeführt, wenn eine Seite auf Ihrer WordPress -Site geladen wird. Ein echter Cron -Job hingegen ist eine Aufgabe, die auf Serverebene geplant ist. Es läuft zu bestimmten Zeiten, unabhängig davon, ob jemand Ihre Website besucht. Während WordPress Cron Jobs leichter aufbauen und nutzen können, können echte Cron -Jobs zuverlässiger und präziser sein.

Das obige ist der detaillierte Inhalt vonMastering WordPress Cron für die Planung von Veranstaltungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage