web-dev-qa-db-fra.com

Comment exporter le code HTML à partir de widgets de texte?

J'ai placé du HTML dans plusieurs widgets de texte qui ont été perdus après avoir supprimé tous les widgets inactifs et changé de thème, mais j'ai trouvé les données dans les tableaux.

Le seul problème, il est mélangé avec tous ces autres codes de merde et je ne veux que du HTML ou du texte.

Toutes les options d'exportation ne permettent pas l'exportation de texte ou HTML même si c'est ce que j'ai entré dans les widgets de texte en premier lieu.

2
Haymanpl

Les données de la table d'options sont stockées sous forme de tableaux sérialisés. Utilisez get_option() pour obtenir les données et les désérialiser.

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'] ) );
        }
    }
);

Si vous avez besoin d'un plugin complet, utilisez ceci. C'est un simple plugin de débogage. Téléchargez, activez et accédez au tableau de bord. Après l'activation, il devrait y avoir un Debug-Widget. Sinon, ouvrez les options de l'écran et activez le widget Debug.

<?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>';

    }

}
2
Ralf912