WordPress: Wie man ein Widget auf einer separaten Website einbetten?

Ein Client hat angefordert, dass wir eine Kopie seiner WordPress-Widgets auf einer separaten, nicht von WP erstellten Website erstellen.

Gibt es eine einfache Möglichkeit, das Widget “anzumelden”? Ich stelle mir vor, ich müsste irgendwie zu etwas im WordPress-Backend kommen.

Solutions Collecting From Web of "WordPress: Wie man ein Widget auf einer separaten Website einbetten?"

Hier ist meine vorgeschlagene Lösung, es erfordert, dass Sie Widget Logic oder dynamische Widgets verwenden .

  1. Fügen Sie den Code zu Ihrem Thema oder benutzerdefinierten Plugin hinzu
  2. Insall eines der Plugins, die ich erwähnt habe
  3. Erstellen Sie die Seite (n) oder Post (s), die wir für das Attribut iframe src auf der Nicht-WordPress-Site verwenden (geben Sie einen beschreibenden Titel, Entwickler neigen dazu, eine Menge zu vergessen).
  4. Fügen Sie das gewünschte Widget zur Seitenleiste “My Iframe” hinzu (wenn Sie diesen Namen nicht geändert haben)
  5. Begrenzen Sie das Widget auf die Seite, die Sie zuvor erstellt haben. Wenn Sie Sidebar Logic verwenden, verwenden Sie dann die Bedingung is_single(N); Wobei N die Seiten- oder Post-ID ist.
  6. Jetzt können Sie den Iframe auf der Nicht-WordPress-Website, Code unten, hinzufügen

Hier ist der Code für den ersten Schritt:

 /** * Verify dependencies * * In this example, we check for plugins in this order: * - Widgets Logic * - Dynamic Widgets */ define( 'WPSE_168484_ERROR' , __( 'Please install and activate Widgets Logic or Dynamic Widgets and use one of them to show only one widget per page, you can still use many iframes in the non-WordPress website.' ) ); function_exists( 'widget_logic_options_control' ) || defined( 'DW_VERSION') || die( WPSE_168484_ERROR ); // Declare sidebar register_sidebar( array( 'name' => __( 'My Iframe', 'my_textdomain' ), 'id' => 'my_iframe', ) ); // Show sidebar as HTML add_action( 'init', 'my_iframe_widget' ); function my_iframe_widget() { if( is_active_sidebar( 'my_iframe' ) ) { // Get widget HTML ob_start(); dynamic_sidebar( 'my_iframe' ); $widget_html = ob_get_clean(); // Remove wrapping 
  • $widget_html = preg_replace( '/^
  • /', '', $widget_html ); $widget_html = preg_replace( '/< \/li>$/m', '', $widget_html ); // Make Valid HTML5 $widget_html = "< !doctype html>$widget_html"; // Output and exit die( $widget_html ); } }

  • Hier ist der Code für den 6. Schritt:

      

    Ersetzen Sie http://example.com/ durch Ihre URL und N durch die Seiten- oder Post-ID.