Nota: Lo siguiente está en gran parte sin probar (Funcionó después de la prueba en una publicación).
Como ha señalado cuando edita una publicación, el complemento toma el contenido de la base de datos (HTML) y lo convierte en MarkDown para su edición. Ya que en su caso el contenido no está en HTML, pero ya está en MarkDown, queremos evitar que esto suceda. Luego, al actualizar la publicación, el complemento debe convertir MarkDown a HTML.
Esto debería ser bastante fácil de hacer, ya que este análisis solo está conectado a algunos filtros, simplemente elimine las devoluciones de llamada adecuadas para evitar que el complemento haga algo. (Entonces, nuevamente, dada la estructura de clases del plug-in, tal vez no sea tan fácil ). Dado esto, es posible que solo desee editar manualmente los archivos de complementos para eliminar los filtros.
Los filtros en cuestión son agregado aquí .
add_filter( 'edit_post_content', array( $this, 'wpautop' ), 10, 2 );
add_filter( 'edit_post_content', array( $this, 'edit_post_content' ), 10, 2 );
Eliminar esos (manualmente o de otra manera) y luego actualizar cada una de las publicaciones debería funcionar. Pero eso podría llevar un tiempo, así que vamos por una solución automatizada ...
function wpse65948_correct_markdown(){
//Only run script if ?markdown=correct is set
if( empty($_GET['markdown']) || 'correct' !== $_GET['markdown'] )
return;
if( !current_user_can('publish_posts') )
return;
//Do a query to get all posts that are expected to contain markdown
//Typically will be decided by post type. Set post_status to 'any'.
$markdowns = get_posts( array(
'fields'=>'ids',
'post_type'=>'post',
'post_status'=>'any',
) );
//If no posts found abort.
if( !$markdowns )
return;
/** !Important
* At this point the filters should be removed. Either remove them now
* or ensure they have been manually removed prior to triggering this script.
*/
foreach ($markdowns as $pid ){
// Get the content for editing
$markdown = get_post_to_edit( $pid );
//$markdown->post_content should contain the correct MarkDown
$update_post = array();
$update_post ['ID'] = $pid;
$update_post ['post_content'] = $markdown->post_content;
//Update the post into the database
wp_update_post( $update_post);
}
}
add_action('admin_init','wpse65948_correct_markdown',20);
Debería probar este script con una de sus publicaciones primero para comprobar que funciona antes de ejecutar el resto.
El script se puede agregar al final del archivo wp-markdown.php
o functions.php
. Eliminar de nuevo después de su uso . Para activar el script, simplemente agregue ?markdown=correct
a una url de administrador.
Si elimina manualmente los filtros antes de ejecutar este script, asegúrese de reemplazarlos nuevamente.