Eliminación y etiquetas en publicaciones de WordPress
Cada vez que estoy publicando algún contenido en la página de publicaciones de WordPress, está mostrando algunas etiquetas de párrafo como <p>
y <br/>
. Que está mostrando un poco de espacio extra en la salida. Entonces, ¿hay alguna solución para ello? ¿Cómo eliminar todas las etiquetas?
8 answers
Esto sucede debido a wpautop
de WordPress.
Simplemente agregue la siguiente línea de código en las funciones de su tema.php file
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
Para más información: http://codex.wordpress.org/Function_Reference/wpautop
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-11 13:25:05
No recomendaría usar la opción remove_filter ya que eliminará las etiquetas y marcas en todas partes que las llame en su plantilla.
La mejor manera es desinfectar su cadena a través de PHP
Puede usar strip_tags de la función php para eliminar marcas inútiles:
echo strip_tags(get_the_excerpt()); // Get the raw text excerpt from the current post
O
echo strip_tags(category_description()); // Get the raw text cat desc from the current cat page
Esto eliminará todas las etiquetas HTML de la publicación de wordpress actual al llamarla.
También puede agregar la función trim por si acaso de:
echo trim(strip_tags(get_the_excerpt())); // Get the raw text excerpt from the current post
O
echo trim(strip_tags(category_description())); // Get the raw text cat desc from the current cat page
Esto es perfecto para obtener texto sin procesar para meta="descripción" y título donde no se recomiendan las marcas HTML.
Espero que ayude
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-19 23:29:20
Prueba esto
$my_postid = $post->ID;
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = strip_tags($content, '<p><br/>');
echo $content;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-08 14:27:05
Eliminar el filtro wpautop
no es la solución más flexible.
Si usted está buscando una solución página por página, o post por post, puede utilizar este plugin:
Https://wordpress.org/plugins/dont-muck-my-markup /
Agregará una casilla de verificación en cada publicación/página para que usted elija si el comportamiento core-Wordpress se deshabilitará para esa página en particular o no.
Esto es especialmente útil cuando se desea publicar algún código HTML y el auto generado <br>
y <p>
estropea tu diseño cuidadosamente diseñado.
El complemento también tiene una opción global para que pueda tener este comportamiento desactivado de forma predeterminada en todas las páginas/publicaciones.
Un complemento alternativo es https://wordpress.org/plugins/preserve-code-formatting / sin embargo, solo probé el que describí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-31 14:22:52
Utilice este código para eliminar <p></p>
antes de inicializar el editor.
function tinymce_remove_root_block_tag( $init ) {
$init['forced_root_block'] = false;
return $init;
}
add_filter( 'tiny_mce_before_init', 'tinymce_remove_root_block_tag' );
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-11 20:09:17
Utilice esto editor editor= wp_filter_nohtml_kses ($_POST['editor1']);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-18 12:26:12
Como la respuesta aceptada aquí no funcionó para mí en WP 4.8.1, estoy publicando una solución que funcionó para mí. Solo tuve que agregar una clase a la p y WordPress no la eliminará.
<p class="whatever">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-04 01:45:08
A veces se elimina la función wpautop de WordPress en las funciones de su tema.php no funciona (por algunas razones).
Así que tengo otra solución cómo dejar de eliminar etiquetas <br>
o saltos de línea dobles (<br><br>
).
- Haga cambios en su archivo
/wp-content/themes/your_theme_name/functions.php
Agregue 2 líneas al principio de sus funciones.
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
Esto inicialmente desactivará la función wpautopop
.
-
Haga cambios en el archivo
/wp-includes/formatting.php
en la funciónwpautop
.A) Cambiar
function wpautop( $pee, $br = true)
porfunction wpautop( $pee, $br = false)
.Esto desactivará adicionalmente la función
wpautopop
de todos los lugares.B) Cambiar
$pee = preg_replace('|<br\s*/?>\s*<br\s*/?>|', "\n\n", $pee);
por$pee1 = $pee; $pee = preg_replace('|<br\s*/?>\s*<br\s*/?>|', "\n\n", $pee); $pee = $pee1;
Esto evitará que el sistema elimine las etiquetas dobles
<br>
. (Sé que el código es extraño, pero simple//$pee
no ayuda aquí debido a?>
etiqueta).C) Cambiar
$pee = preg_replace("/\n\n+/", "\n\n", $pee);
a//$pee = preg_replace("/\n\n+/", "\n\n", $pee);
Esto evitará que el sistema elimine múltiples saltos de línea.
D) Cambiar esto:
$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);
A que:
//$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);
Esto evitará que el sistema elimine los saltos de línea después de la apertura o antes de la etiqueta de elemento de bloque de cierre como
<div>
,<article>
, etc.E) Cambiar esto:
$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);
A eso:
//$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);
Bastante igual: Esto evitará que el sistema elimine los saltos de línea después de la apertura o antes de la etiqueta de elemento de bloque de cierre como
<div>
,<article>
, etc.F) Cambiar esto:
$pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);
A eso:
// $pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);
Esto evitará la sistema de eliminar
<br>
al final del bloque.G) Cambiar esto:
$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee);
A eso:
//$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee);
Esto evitará que el sistema elimine
<br>
después de una etiqueta de bloque de apertura o cierre.
Espero que ayude! Y leer los comentarios en este archivo – que le ayudará a entender lo que necesita para activar o desactivar.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-26 19:30:22