Iframe-Inhalt zum Sidebar-Widget hinzufügen

Ich versuche, ein Amazon-Werbe-Widget in einem WordPress-Sidebar-Widget (selbst gehosteter WordPress, v3.1.3) hinzuzufügen. Der Widget-Code ist im Grunde ein Iframe.

Ich habe versucht, das Widget “Text” zu verwenden und den iframe-Code dort einzufügen, aber wenn ich das Widget speichere, verschwindet der iframe-Code.

Ich bin auf dieses Problem / diese Einschränkung gestoßen und habe es mit dem IFrame-Widget getriggers, aber ich möchte mehr als einen iFrame in meiner Sidebar verwenden, und das IFrame-Widget unterstützt jeweils nur ein Widget.

Fehle ich etwas Offensichtliches? Gibt es irgendwo eine Einstellung, die iframe-Code in den Widgets erlaubt? Oder ist es normalerweise erlaubt, und ich habe etwas Dummes zu meiner Installation gemacht? Wenn nicht, irgendwelche guten Workarounds?

Solutions Collecting From Web of "Iframe-Inhalt zum Sidebar-Widget hinzufügen"

Erstellen Sie einfach ein Widget, das Ihre Eingabe nicht filtert. Dies ist wahrscheinlich das einfachste Widget mit Benutzereingaben, die Sie erstellen können.

Hier ist das Widget, das ich in meinem Plugin Magic Widgets verwende .

/** * Simplified variant of the native text widget class. * * @author Thomas Scholz aka toscho http://toscho.de * @version 1.0 */ class Unfiltered_Text_Widget extends WP_Widget { /** * @uses apply_filters( 'magic_widgets_name' ) */ public function __construct() { // You may change the name per filter. // Use add_filter( 'magic_widgets_name', 'your custom_filter', 10, 1 ); $widgetname = apply_filters( 'magic_widgets_name', 'Unfiltered Text' ); parent::__construct( 'unfiltered_text' , $widgetname , array( 'description' => 'Pure Markup' ) , array( 'width' => 300, 'height' => 150 ) ); } /** * Output. * * @param array $args * @param array $instance * @return void */ public function widget( $args, $instance ) { echo $instance['text']; } /** * Prepares the content. Not. * * @param array $new_instance New content * @param array $old_instance Old content * @return array New content */ public function update( $new_instance, $old_instance ) { return $new_instance; } /** * Backend form. * * @param array $instance * @return void */ public function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'text' => '' ) ); $text = format_to_edit($instance['text']); ?>  < ?php /* To enable the preview uncomment the following lines. * Be aware: Invalid HTML may break the rest of the site and it * may disable the option to repair the input text. ! empty ( $text ) and print '

Preview
' . $instance['text'] . '
'; /**/ ?> < ?php } }

Sie registrieren das Widget mit:

 add_action( 'widgets_init', 'register_unfiltered_text_widget', 20 ); function register_unfiltered_text_widget() { register_widget( 'Unfiltered_Text_Widget' ); } 

Jetzt erhalten Sie ein neues Widget in wp-admin/widgets.php :

Widgets im Backend

Ich habe nur zwei coole Youtube-Videos als iframes und eine


in das Widget eingefügt.
Ausgabe:

Widget-Ausgabe

Um die betreffende Antwort zu aktualisieren, kann das reguläre Text-Widget ab der WP 4.8-Site, die ich getestet habe, iFrames nun nativ anzeigen, indem einfach das normale iframe-Tag verwendet wird: