Zwischen functions.php, widgets und plugins, welches zuerst geladen wird?

Der Kunde fragt, ob ein bestimmtes Karussell-Plugin, das er verwendet, widgetisiert werden kann. Das heißt, ich sollte in der function functions.php ein Widget erstellen, das die function des Plugins aufruft. Das bedeutet, dass der Code des Plugins zuerst geladen werden muss, damit die function für WordPress verfügbar ist, wenn die Datei functions.php geladen ist, oder? functioniert das?

Solutions Collecting From Web of "Zwischen functions.php, widgets und plugins, welches zuerst geladen wird?"

Die Plugins werden direkt vor dem Thema geladen (ja, ich habe nach einer Ausrede gesucht, um das zu benutzen):

Bildbeschreibung hier eingeben

Es ist jedoch falsch darüber nachzudenken, ob der Code ausgeführt werden soll oder nicht. In den meisten Fällen sollte alles eingehängt und nicht früher als init hook ausgeführt werden. Gemäß Codex sollte die Widget-Registrierung mit register_widget() an widget_init .

Da diese Ladeordnung für diesen Fall keine Rolle spielt, haben Sie in jedem Fall alles geladen, was das Widget benötigt.

Ein interessanter Ansatz wäre, alle Hooks zu einer Datei in einer Ausführungsreihenfolge aufzulisten.

 add_action( 'all', '_20161224_printer' ); function _20161224_printer( $r ){ $line = microtime(true)*10000 . ' ' . $r . "\n"; $fp = fopen( ABSPATH . 'hooks.txt', 'a+'); fwrite($fp, $line); fclose($fp); } 

Und Sie erhalten die Ausgabe wie folgt:

 14825992300742 pre_option_blog_charset 14825992300743 option_blog_charset 14825992300743 plugins_loaded 14825992300744 load_default_widgets 14825992300745 load_default_embeds 14825992300745 wp_audio_extensions 14825992300745 wp_audio_embed_handler 14825992300746 wp_video_extensions 14825992300746 wp_video_embed_handler 14825992300746 sanitize_comment_cookies 14825992300747 pre_option_permalink_structure 14825992300747 option_permalink_structure 14825992300748 pre_option_wp_user_roles 14825992300748 option_wp_user_roles 14825992300749 wp_roles_init 14825992300749 setup_theme 14825992300749 pre_option_template 14825992300750 option_template 14825992300750 template 14825992300750 theme_root 14825992300751 template_directory 14825992300751 pre_option_stylesheet 14825992300751 option_stylesheet 14825992300751 stylesheet 14825992300752 theme_root 14825992300752 stylesheet_directory 14825992300752 pre_option_WPLANG 14825992300753 query 14825992300754 default_option_WPLANG 14825992300755 locale 14825992300755 override_unload_textdomain 14825992300755 unload_textdomain 14825992300755 override_load_textdomain 14825992300756 load_textdomain 14825992300756 load_textdomain_mofile 14825992300756 locale ... many many more action hooks ... 14825992302886 wp_parse_str 14825992302886 nonce_life 14825992302886 salt 14825992302886 wp_parse_str 14825992302887 esc_html 14825992302887 logout_url 14825992302887 clean_url 14825992302887 gettext 14825992302887 wp_after_admin_bar_render 14825992302888 pre_option_template 14825992302888 option_template 14825992302888 template 14825992302888 theme_root 14825992302888 template_directory 14825992302889 parent_theme_file_path 14825992302889 shutdown 

Beachten Sie, dass die vollständige Liste einfach nicht die 30.000-Zeichen-Beschränkung pro WPSO-Post erfüllen konnte. Daher habe ich viele Aktions-Hooks entfernt.

Fügen Sie den obigen Code in ein Plugin ein. Wenn Sie das aus den Themes functions.php tun, functions.php Sie plugins_loaded nicht fangen. Ein weiterer Beweis, dass die Plugins vor dem Theme geladen sind.

Die möglichen Vorteile dieses Schecks sind viele, aber bitte beachten Sie, dass die Ausgabe für verschiedene Seitenvorlagen unterschiedlich ist, die Sie aufrufen, oder wenn Sie sich in einem Dashboard befinden.

Ich habe das einfach von /?p=1 oder Hello World aufgerufen.

Wenn Sie kein einziges Plugin aktiviert haben, können Sie diesen Code in den Ordner mu-plugins .

Es kann besser sein, WP FS API zu verwenden , aber dieser Weg ist wirklich prägnant.

Sie können ein Widget in der .php Datei des Plugins haben (und eine gemeinsame globale Variable haben, die beide benutzen können), wenn Sie das fragen. Hier ist ein Tutorial mit Beispielcode, über das ich vor einiger Zeit gestolpert bin.

Außerdem finden Sie hier eine Liste von Aktionen, die während einer typischen Anforderung in der Reihenfolge der Ausführung ausgeführt werden. # 2 und # 10 legen nahe, dass Plugins zuerst geladen werden; nicht sicher über functions.php.