WordPress elimina el shortcode único de las publicaciones

1 minuto de lectura

Quiero desnudar solo el códigos cortos en mis publicaciones de blog. La única solución que encontré es un filtro que agregué a mis funciones.

function remove_gallery($content) {
  if ( is_single() ) {
    $content = strip_shortcodes( $content );
  }
  return $content;
}
add_filter('the_content', 'remove_gallery');

Elimina todos los códigos cortos, incluidos que necesito para las imágenes. ¿Cómo puedo especificar un solo shortcode para excluir o incluir?

  • ¿Puede proporcionar un ejemplo de un shortcode o dos?

    – Darragh Enright

    25 de febrero de 2012 a las 2:28

avatar de usuario
hakré

Para eliminar solo el shortcode de la galería, registra una función de devolución de llamada que devuelva una cadena vacía:

add_shortcode('gallery', '__return_false');

Pero esto solo funcionará con las devoluciones de llamada. Para hacerlo de forma estática, puede cambiar temporalmente el estado global de wordpress para engañarlo:

/**
 * @param string $code name of the shortcode
 * @param string $content
 * @return string content with shortcode striped
 */
function strip_shortcode($code, $content)
{
    global $shortcode_tags;

    $stack = $shortcode_tags;
    $shortcode_tags = array($code => 1);

    $content = strip_shortcodes($content);

    $shortcode_tags = $stack;
    return $content;
}

Uso:

$content = strip_shortcode('gallery', $content);

  • Es bueno, pero necesita devolver otros códigos cortos, no olvide hacer echo do_shortcode ($ contenido) después.

    – Benn

    7 abr 2016 a las 16:28

Para mí, trabajó con:

add_shortcode('shortcode_name', '__return_false');

Si trato de strip_shortcode, eliminan todos los códigos cortos y cambian el resultado final

Si desea obtener solo el contenido, excluyendo cualquier código abreviado, intente algo así

global $post;
$postContentStr = apply_filters('the_content', strip_shortcodes($post->post_content));
echo $postContentStr;

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad