web-dev-qa-db-fra.com

Comment transformer un shortcode en php?

J'ai besoin d'ajouter un shortcode dans l'un des fichiers php (en remplacement d'un code à barres de recherche codé en dur dans le fichier php d'en-tête). Comment ajouter un shortcode au fichier php en-tête?

C'est le code que je regarde:

<?php if ( (is_front_page()) && (of_get_option('g_search_box_id') == 'yes') ) { ?>
    <div class="search-form-wrap hidden-phone" data-motopress-type="static" data-motopress-static-file="static/static-search.php">
        <?php get_template_part("static/static-search"); ?>
    </div>
<?php } ?>

et je dois supprimer le search-form-wrap avec un formulaire de recherche shortcode différent (pour mls).

MODIFIER:

Voici le shortcode que je dois traiter:

[idx_search link = "###########" detailed_search = "off" destination = "local" user_sorting = "off" location_search = "on" property_type_enabled = "on" theme = "hori_round_light" orientation = " horizontal "width =" 730 "title_font =" Arial "field_font =" Arial "border_style =" arrondi "widget_drop_shadow =" off "background_color =" # ffffff "title_text_color =" # 000000 "field_text_color =" # 545454 "detailed_search_color" "submit_button_shine =" shine "submit_button_background =" # 59cfeb "submit_button_text_color =" # 000000 "]

1
damann

En général, insérer et exécuter des codes courts directement dans les fichiers de modèles n’est pas une bonne idée et ce n’est pas ce à quoi les codes courts sont destinés. Au lieu de cela, vous devez utiliser le rappel de code court comme n'importe quelle autre fonction PHP ou balise de modèle .

Par exemple, imaginons ce shortcode:

add_shortcode('someshortocode', 'someshortocode_callback');
function someshortocode_callback( $atts = array(), $content = null ) {

    $output = "Echo!!!";

    return $output;

}

Alors, au lieu de faire ceci:

echo do_shortcode( '[someshortocode]' );

Vous devriez faire ceci:

echo someshortocode_callback();

Évidemment, pour utiliser le rappel de shortcode en tant que balise de modèle, le shortcode doit être codé de manière à permettre cette utilisation, de sorte que cela risque de ne pas être possible (bien que je n’aie jamais trouvé de shortcode ne permettant pas l’utilisation directe du rappel , ça peut exister). Dans ce cas, et seulement dans ce cas, j'utiliserais do_shortcode( '[someshortcode]' ) (je ne l'aurais jamais vraiment utilisé).

Notez que les shortcodes sont des espaces réservés PHP à utiliser lorsque le code PHP ne peut pas être inséré, c'est pourquoi il n'a aucun sens de les utiliser dans les scripts PHP .

4
cybmeta

Vous pouvez l'utiliser.

<?php echo do_shortcode('[Shortcode_goes_here]') ?>
1
Charles Xavier

Utilisez do_shortcode pour générer un shortcode dans votre modèle.

echo do_shortcode( '[theshortcode]' );
1
Milo