El shortcode del complemento de Wordpress no funciona


9

Tengo un shortcode definido en un complemento de la siguiente manera:

// [tag1] -> Some Longer Text
function shortcode_example1() {
    return 'Some Longer Text';
}
add_shortcode('tag1', 'shortcode_example1');

Ahora dentro de una página de WordPress estoy tratando de acceder al complemento de la siguiente manera:

[tag1]

Sin embargo, el shortcode no se ejecuta y la salida es solo "[tag1]". ¿Puede usted ayudar?

Gracias por tu ayuda.


Su código funciona para mí en WP 3.9.2, ya sea en un complemento o functions.php. ¿Otros códigos abreviados funcionan bien?
Gabriel

1
También confirmo que este shortcode funciona bien. ¿Algo ha quitado el do_shortcodefiltro del the_contentgancho? Intente cambiar a un tema predeterminado (¿está usando su tema the_content()?) Y deshabilite todos los complementos. Luego habilítelos 1 por 1 para encontrar el conflicto potencial.
helgatheviking

Respuestas:


31

Hay un par de cosas para verificar aquí

  • Uno: ¿está activado su complemento?

  • Dos: es su shortcode en su archivo de complemento principal. Si ese código está en otro archivo dentro de su complemento, ¿se aseguró de incluir ese archivo adicional en su archivo de complemento principal?

  • Tres: no tiene ningún tipo de error en su archivo de complemento que desactiva su complemento después de la activación. ¿Ha configurado la depuración en verdadero? Uno de los miembros del sitio tiene un excelente complemento de depuración disponible para descargar en wordpress.org llamado Debug Objects

  • Cuatro: intente mover su shortcode a las funciones de su tema.php para asegurarse de que su shortcode realmente funciona. Si no funciona dentro de su tema, el problema podría estar en su propio tema

  • Cinco: como lo sugiere @helgatheviking, ¿no estás filtrando the_content()de ninguna manera que pueda causar este comportamiento?

  • Seis: si todo lo anterior falla, desactive todos los complementos, cambie a un tema incluido y vuelva a verificar. Si el problema persiste, actualice / reinstale Wordpress, ya que este podría ser un archivo central dañado.


Hice la lista de verificación: 1 = verificar !, 2 = sí !, 3 = no, 4 = ok, 5 = no, 6-> funcionó! Después de cambiar mi wp local (para probar) de 'Sydney Theme' a 'Twenty Fourteen' se muestra el SC. Parece que hay temas que impiden que los SC se muestren en las publicaciones.
Martin Pfeffer

Gracias Pieter por esta lista de verificación. Resulta que no había incluido mi archivo correctamente ... woops. Funciona bien ahora :)
Chess Byte

Hice todo lo siguiente y aún no funciona. Tengo una nueva instalación de WordPress (5.0.2) con código agregado al archivo functions.php. Pero cuando pongo [shortcodename] en una página se trata como texto. ¿Qué está mal? Uso el tema predeterminado: Twenty Sixteen.
hal

Esta es una lista de verificación súper útil. Lo único que agregaría sería un Seven: asegúrese de que el editor de su página no esté aumentando su shortcode como el mío: [plc_get_matter_detail_per_contact contactos = 6c131- <wbr /> 668f13139e matters = 6c620185-6211-1331-a642-668f6b7eea9e ] Ese "útil" WordBreak me jodió por un tiempo. Gracias editor de la página ...
Brian Stinar

-1

Agrega esto

    add_filter('the_content', 'do_shortcode');

1
¿Por qué? ¿Qué hace esto? ¿Dónde agregarían esto? Por favor, editar su respuesta utilizando la edición enlace anterior y añadir más información sobre cómo esto ayuda a resolver el problema.
Howdy_McGee

-4

Gracias por sus respuestas Después de una investigación más profunda, descubrí que el archivo de complemento donde se definió mi código corto se mostraba como "inactivo". Una vez que moví mis definiciones de shortcode a un archivo activo, todo comenzó a funcionar. Espero que esto sea útil para cualquiera que se encuentre con esto en el futuro.

¡Gracias de nuevo!


Acepte la respuesta correcta en lugar de la suya.
Byte de ajedrez
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.