如何从文本小部件中导出HTML?

时间:2013-04-28 作者:Haymanpl

我在几个文本小部件中放置了HTML,在我删除了所有不活动的小部件并更改了主题后,这些小部件丢失了,但我在表中找到了数据。

唯一的问题是,它与所有其他垃圾代码混合在一起,我只想要HTML或文本。

所有的导出选项都不允许导出文本或HTML,即使这是我首先在文本小部件中输入的内容。

1 个回复
SO网友:Ralf912

选项表中的数据存储为序列化数组。使用get_option() 获取数据并取消序列化。

array_walk(
    get_option( \'widget_text\' ),
    function( $d ){
        if ( ! empty( $d[\'title\'] ) ) {
            printf( \'<p>Title: %s<br>Text: %s</p>\', $d[\'title\'], htmlentities( $d[\'text\'] ) );
        }
    }
);
如果您需要一个完整的插件,请使用此插件。这是一个简单的调试插件。上载、激活并转到仪表板。激活后,应该有一个调试小部件。如果没有,请打开屏幕选项并激活调试小部件。

<?php
/*
Plugin Name: __WPSE__
Description: Testing plugincode
*/

add_action( \'plugins_loaded\', function(){ new TestPlugin; } );

class TestPlugin {

    public function __construct(){

        add_action( \'wp_dashboard_setup\', array( $this, \'add_dashboard_widget\' ) );

    }

    public function add_dashboard_widget(){

        wp_add_dashboard_widget(
            \'debug-widget\',
            \'Debug Widget\',
            array( $this, \'output\' ),
            $control_callback = null
        );

    }

    public function output(){

        echo \'<div class="wrap">\';

        array_walk(
            get_option( \'widget_text\' ),
            function( $d ){
                if ( ! empty( $d[\'title\'] ) )
                    printf( \'<p>Title: %s<br>Text: %s</p>\', $d[\'title\'], htmlentities( $d[\'text\'] ) );
            }
        );

        echo \'</div>\';

    }

}

结束