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.

¿Cómo insertar un CÓDIGO PHP dentro de un shortcode?

Me gustaría insertar un código php, pero hay un error al colocarlo.

Shortcode generado por el tema:

[col_grid span="4" span_sm="14" height="1-2" visibility="show-for-medium"]
[ux_banner height="500px" bg="*[banner-picture]*" bg_size="original"]
[text_box width="100" scale="148" position_x="50" position_y="100" bg="rgb(88, 32, 123)"]
[ux_text text_color="rgb(247, 128, 44)" class="uppercase"]
<p><strong>preencha a proposta de adesão</strong></p>
[/ux_text]
[/text_box]
[/ux_banner]
[/col_grid]

Mi CÓDIGO PHP:

add_action('foto_banner', 10 );

function foto_banner() {
    if(get_field('foto_banner')) { ?>
        <?php the_field('foto_banner'); ?>
    <?php } else {
        echo "Texto não informado";
    }
}

add_shortcode( 'banner-picture', 'foto_banner');
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para insertar tu código PHP dentro del shortcode generado por el tema, debes insertar el código PHP dentro del shortcode [text_box]. Aquí tienes un ejemplo:

    [text_box width="100" scale="148" position_x="50" position_y="100" bg="rgb(88, 32, 123)"]
    
    [ux_text text_color="rgb(247, 128, 44)" class="uppercase"]
    
    <strong>preencha a proposta de adesão</strong>
    <?php if(get_field('foto_banner')) { ?>
    
        <?php the_field('foto_banner'); ?>
    
    <?php }else{
        echo "Texto não informado";
    }
    }
    ?>
    
    [/ux_text]
    
    [/text_box]
    

    Ten en cuenta que debes reemplazar el shortcode [banner-picture] con el shortcode [foto_banner] que has creado con tu código PHP. Además, asegúrate de escapar cualquier caracter especial (por ejemplo, <, >, &) utilizando entidades HTML. Con esta modificación, tu código PHP se ejecutará dentro del shortcode [text_box] y el banner mostrará la imagen especificada en tu campo personalizado.

Comments are closed.