WordPress-Widget im benutzerdefinierten Thema

Ich habe ein benutzerdefiniertes Thema erstellt und ein grundlegendes Widget für meine WordPress-basierte Website geschrieben. Wenn ich den Code in functions.php einfüge funktioniert der Code gut, aber wenn ich den Code in eine separate Datei einfüge und im Plugins Verzeichnis verwalte, wird er nicht in den admin> appearance> Widgets angezeigt.

Das Problem, den Widget-Code in functions.php zu behalten, ist, dass es mit einigen Plugins kollidiert, die mir wichtig sind.

Ich habe wp_register_widget als wilde Vermutung versucht, aber ohne Erfolg.

Hier ist der Widget-Code (Sie können die ‘include’ Zeile entfernen, um den Code zu testen)

class Similar_Apps_Widget extends WP_Widget { public function __construct() { parent::__construct( 'Similar_Apps_Widget', // Base ID __('Similar Apps', 'text_domain'), // Name array( 'description' => __( 'Similar Apps Widget', 'text_domain' ), ) ); } public function form( $instance ) { } public function update( $new_instance, $old_instance ) { } public function widget( $args, $instance ) { ?> 

Similar Apps

<?php include (TEMPLATEPATH . '/include/' . get_field('similarapps'). '-similar-products.php'); } } register_widget( 'Similar_Apps_Widget' );

und hier ist der Code von functions.php, wo ich die Widgets-Platzierung definiere

  'Widgetized Area', 'id' => 'widgetized-area', 'description' => 'This is a widgetized area.', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' )); register_sidebar(array( 'name' => 'Page Widget', 'id' => 'page-widget', 'description' => 'Page Widgets.', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

' )); } ?>

und hier ist, wo es in das Thema eingefügt wird

 

Solutions Collecting From Web of "WordPress-Widget im benutzerdefinierten Thema"

Sie müssen Ihr Widget wie folgt registrieren:

 add_action("widgets_init", "register_widgets");// Hook WP /** * Register widgets */ function register_widgets() { require_once "FooWidget.php"; register_widget("FooWidget"); } 

Gleiches gilt für die Widget-Zonen

 add_action("widgets_init", "register_widgets_zones"); function register_widgets_zones() { register_sidebar(array( "name" => "Foo Zone Page", "id" => "foo-zone-widgets", "class" => "panel", "before_widget" => '
', "after_widget" => "
", "before_title" => "", "after_title" => "", ));