WordPress agrega códigos cortos en functions.php

4 minutos de lectura

avatar de usuario
Xatenev

Quiero agregar un shortcode en el functions.php de WordPress, para que pueda usar mi función en mi sitio.

El problema es, obviamente, el shortcodes.php está incluido después la functions.phppor lo que me da un error:

llamado una funcion indefinida add_shortcode

¿Cómo puedo agregar códigos cortos en mi functions.php?

  • Por favor sé más específico. ¿Te refieres a functions.php dentro de la carpeta de tu tema? ¿Qué versión de WordPress estás usando?

    – Nathan Dawson

    5 mayo 2014 a las 13:39

  • Me refiero a functions.php dentro de mi wp-includes. ¿O hay alguna otra forma de incluir PHP en una sola página? No conozco otra manera mejor. ¡Gracias!

    – Xatenev

    5 mayo 2014 a las 13:42

  • No agregue/cambie nada en wp-includes directorio, que es material básico de WP y no debe meterse con él a menos que sepa exactamente lo que está haciendo. deberías agregar esto a la functions.php en tu tema activo. si está usando un tema hijo, puede agregar un functions.php a eso con solo tu shortcode en él

    – celeriko

    5 mayo 2014 a las 14:03

  • Gracias celeriko -> He resuelto esto ahora simplemente creando un nuevo complemento con mis funciones de shortcode.

    – Xatenev

    5 mayo 2014 a las 14:20

avatar de usuario
celeriko

si no desea modificar su tema functions.php archivo (por razones obvias) tiene dos opciones

  1. crear un tema hijo y hacer un functions.php archivo con su shortcode allí. WordPress reconocerá este archivo y lo incluirá automáticamente por usted y siempre que no haya conflictos de nombres con otras funciones en su tema principal. functions.php

  2. crear un nuevo archivo, custom_shortcodes.php o algo así, con su shortcode personalizado y agréguelo a su tema. entonces en tu tema functions.phpal final, agregue la línea

    include 'custom_shortcodes.php';

esto le permitirá editar sus códigos abreviados personalizados sin tener que modificar los temas functions.php. solo sepa que si actualiza su tema, tendrá que volver a agregar la línea anterior a functions.php. Personalmente, siempre uso un tema secundario y luego termino usando el primer método, pero cualquiera de los dos es aceptable.

una última opción, y lo que resolvió el problema de @xatenev, es crear un complemento y agregar todos sus códigos cortos al complemento. Esto hace que su código personalizado sea ‘portátil’ y le permite usarlo en cualquier tema que haya instalado sin tener que ir a la carpeta del tema y agregar/cambiar archivos.

  • Gracias, he resuelto esto creando un nuevo complemento ahora, que contiene todas las funciones y códigos abreviados. ¡Gracias!

    – Xatenev

    5 mayo 2014 a las 14:21

  • ¡buena solución! voy a actualizar mi respuesta para cualquier persona en el futuro

    – celeriko

    5 mayo 2014 a las 14:22

referencia de sus funciones.php a sus shortcodes.php

Entonces su functions.php podría comenzar como

<?php

// define the path   
$shortcodes_path = get_template_directory() . '/shortcodes';

// ** Get the shortcodes.php **
require_once $shortcodes_path . '/shortcodes.php';

Este código ahora comenzará a cargar un archivo llamado “shortcodes.php” almacenado en una carpeta “shortcodes”.

La línea después de definir la ruta establece un acceso directo a la carpeta de temas y allí mismo a una subcarpeta llamada “códigos cortos”.
La línea directa después de Get the shortcodes.php carga un archivo llamado “shortcodes.php” almacenado en esa carpeta “shortcodes”. Por lo tanto, podría poner todos sus css, js, etc. limpios en una carpeta, usando $ shortcodes_path para cargar el recurso.

Ahora debe colocar el archivo de códigos abreviados en esta carpeta con el ejemplo de nombre correcto podría ser

<?php
/* show content on mobilephones only */
    function showm( $atts, $content = null ) { 
        $content = wpautop(trim($content));
        return '<div class="visible-xs">'.do_shortcode($content).'</div>';  
    }  
    add_shortcode("show-m", "showm");  

guardar y disparar. SI está utilizando bootstrap, este código abreviado envolverá su contenido en un div que solo se mostrará en dispositivos móviles.

dos cosas: 1. Como se trata de php, no necesita una etiqueta de php de cierre, pero si eres un amante del código limpio, lo harás de todos modos. 2. Siempre use “do_shortcode ($ contenido)” ya que esto permitirá al usuario usar un código abreviado envuelto en un código abreviado. FE: si tiene el código abreviado anterior para dispositivos móviles y un código abreviado para íconos, el usuario podría usar el código abreviado de ícono para que se muestre solo en dispositivos móviles.

TANTO WOW =) Todo lo mejor Fab

  • Gracias, de todos modos, resolví esto creando un nuevo complemento en el que almaceno todas mis funciones que necesitan un código abreviado. No sabía que el “functions.php” del que hablan todos los tutoriales es el tema – functions.php en lugar de functions.php en wp-includes/. ¡Gracias de todos modos!

    – Xatenev

    5 mayo 2014 a las 17:00

¿Ha sido útil esta solución?