Ich habe ein Plugin erstellt, das benutzerdefinierte Post-Typen und Widgets mit diesen benutzerdefinierten Post-Typen erstellt. Der benutzerdefinierte Post-Typ wird mit dem Action-Tag init
und dem Widget mit der Nummer widget_init
registriert.Benutzerdefinierte Beitragstypen, die noch nicht in Widgets_init registriert sind?
Wie so:
public function __construct() {
// load the modules
add_action('init', array($this, 'addModule'));
}
public function addModule() {
// register the post type.
register_post_type($this->post_type, $this->getArgs());
}
Und das Widget wird wie folgt aufgerufen:
add_action('widgets_init', function() {
register_widget('Webburo\Widgets\project\ProjectsWidget');
});
Wenn ich die Post-Typen mit get_post_types()
im Widget-Code var_dump()
, wird es nicht die neu zeigen registriert Beitragstypen. So scheint es mir, dass die Beitragstypen noch nicht in der widget_init
registriert sind. Gibt es etwas, das ich falsch mache oder mir etwas fehlt?
Ich habe der öffentliche Schlüssel true gesetzt, aber immer noch i registriert haben nicht die benutzerdefinierten Post-Typen erhalten. Wenn ich zum Beispiel die Funktion in einer 'admin_init'-Aktion verwende, kann ich die benutzerdefinierten Post-Typen sehen. Es ist so, als wäre es noch nicht im Moment des Widget-Codes registriert. –
Das könnte der Grund sein, da der admin_init vor jedem anderen Hook ausgelöst wird, wenn ein Benutzer auf den Admin-Bereich zugreift. und Init Hook wird geladen und gefolgt von anderen, das ist Widget Hook und etc –