Supporto » Sviluppare con WordPress » Estendere JSON

  • haring

    (@haring)


    Salve,
    ho un plugin che crea una riga della tabella postmeta con il codice serializzato delle opzioni che imposto. De-serializzandolo riesco a leggere bene tutte le specifiche impostate.
    Sono in contatto con l’autore della funzionalità aggiuntiva, ma volevo avere un confronto e qualche delucidazione a prescindere e come base qualora con loro la cosa non procedesse per il verso che mi auguro.
    È possibile estendere le “letture” JSON anche a questi post? Perché, nonostante esistano nel database, non vengono elencati quanto li richiedo. E tantomeno il contenuto della tabella postmeta.
    Inoltre, è teoricamente possibile impostare/modificare manualmente il contenuto serializzato di una riga della suddetta tabella con un altro (seguendo tutte le specifiche della serializzazione), per esempio per correggerlo più facilmente o estenderlo?
    La domanda potrà sembrare assurda, ma la gestione dalla preposta interfaccia del plugin è una via crucis da percorrere sotto un sole cocente, scalzi, con un’infiammazione a tutte le giunture, il raffreddore ed un manto di vetri rotti sul terreno. Impervio e pieno di sassi affilati, s’intende.
    Ho cercato istruzioni su come estendere JSON, ma non credo di aver afferrato il concetto.

    grazie in anticipo

Stai vedendo 1 repliche (di 1 totali)
  • Ho deciso di affrontare la cosa diversamente, ma non riesco a risolvere un problema.

    Ho il contenuto (che creo con un programma handmade) non serializzato che vorrei serializzare per infilare nella tabella postmeta.
    Se prendo, come dichiarazione di una variabile in formato testo all’interno di php, la de-serializzo e la ri-serializzo nuovamento non ho problemi.

    Codice funzionante:

    <?php
    	require_once("wp-load.php");
    	function include_before_theme()
    	{ include_once ( 'wp-includes/functions.php' ); }
    
    $seriale = 'a:6:{s:4:........'; // codice serializzato
    echo "<table><tr><th>Seriale:</th><th>Deserializzato:</th><th>Ri-serializzato:</th></tr><tr><td>" ;
    echo htmlspecialchars($seriale) . "</td>";
    $ok = maybe_unserialize( $seriale );
    echo "<td>" ;
    var_dump ( $ok );
    echo "</td>" ;
    $riserializza = maybe_serialize ($ok) ;
    echo "<td>" . htmlspecialchars($riserializza) . "</td></tr></table>" ;
    
    ?>
    

    Vorrei fare l’inverso, ma mi sono bloccato. Ho il codice deserializzato in un file di testo (viste le dimensioni), come posso fargli leggere il contenuto correttamente?

    Ho anche pensato: è sbagliato il codice non serializzato fatto in casa. Ma dà i medesimi problemi anche se uso il codice che deserializza la funzione maybe_userialize, la sorella di maybe_serialize che l’ha prodotto.

    grazie in anticipo

    Aggiornamento. Ho fatto un’altra prova:

    $seriale1 =  fopen('text.txt',"r");
    echo "<table><tr><th>Array:</th><th>Serializzato:</th></tr><tr><td>" ;
    $seriale2 = fread($seriale1,filesize("text.txt"));
    echo $seriale2 ;
    echo "</td><td>" ;
    $riseriale1 = maybe_serialize ($seriale2) ;
    echo htmlspecialchars($riseriale1);
    echo "</td></tr></table>" ;

    Nessun successo.

    • Questa risposta è stata modificata 3 mesi, 3 settimane fa da  haring.
Stai vedendo 1 repliche (di 1 totali)
  • Devi essere collegato per rispondere a questo topic.