es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convierte el selector de color Echo Acf en un shortcode.

Así que estoy usando ACF para crear un código de color de tema para mostrarlo en los fondos de correos electrónicos y fondos de páginas, utilizando un campo de texto simple.

Lo que hice fue crear este fragmento de código:

add_shortcode('bg-color', function() {return '<?php the_field('color-code', 'option'); ?>';} );

Para mostrar el campo de texto como: #ffffff

Pero en lugar de eso, estoy obteniendo un error de php.

Cuando intento usar un complemento de shortcode, funciona perfectamente, pero cuando lo pongo como campo de color, devolverá el nombre exacto del shortcode y no el código de color real, por lo que se vería así: background de página: [bg-color], en lugar de background de página: #fffff

Sé que estoy haciendo algo mal en el primer shortcode, ya que es un código php dentro de otro código php, y por eso hay un error de sintaxis.

También he intentado:

add_shortcode('bg-color', function() {return '[acf field="color-code" post_id="options"]';} );

Pero sin suerte.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando usar una función de PHP dentro de otra función de PHP, lo cual está causando un error de sintaxis. Para solucionar este problema, puedes intentar lo siguiente:

    En lugar de utilizar la función the_field() dentro de tu shortcode, puedes usar la función get_field() para recuperar el valor de tu campo de código de color. De esta manera, puedes evitar el error de sintaxis causado por las funciones PHP anidadas.

    Tu shortcode actualizado se verá así:

    add_shortcode( 'bg-color', function() {
      $color_code = get_field('codigo-de-color', 'option');
      return $color_code;
    });
    

    Esto debería recuperar correctamente el valor de tu campo de código de color y mostrarlo cuando se utilice el shortcode. Prueba el shortcode con el campo de color para asegurarte de que devuelva el valor correcto.

    Si encuentras algún problema, puedes considerar el uso de un plugin de shortcode, ya que has mencionado que funciona sin errores.

Comments are closed.