如何将短代码转换为PHP代码?

时间:2015-11-05 作者:damann

我需要在其中一个PHP文件中添加一个短代码(替换硬编码到PHP头文件中的搜索条形码)。如何向PHP头文件添加短代码?

这是我正在查看的代码:

<?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 } ?>
我需要使用不同的短码搜索表单(针对mls)删除搜索表单包装。

以下是我必须处理的短代码:

[idx\\u search link][detailed\\u search=“off”destination=“local”user\\u sorting=“off”location\\u search=“on”property\\u type\\u enabled=“on”theme=“hori\\u round\\u light”orientation=“horizontal”width=“730”title\\u font=“Arial”field=“Arial”border\\u style=“rounded”widget\\u drop\\u shadow=“off”“background\\u color=”“ffffff”title\\u text\\u color=”“000000”field\\u text\\u color=”“545454”detailed\\u search\\u text\\u color=“#234c7a”submit\\u button\\u shine=“shine”submit\\u button\\u background=“#59cfeb”submit\\u button\\u text\\u color=#000000”]

3 个回复
SO网友:cybmeta

通常,直接在模板文件中插入和执行短代码不是一个好主意,也不是短代码的目的。相反,您应该像其他调用一样使用快捷码回调PHP function or template tag.

例如,让我们想象一下这个短代码:

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

    $output = "Echo!!!";

    return $output;

}
然后,不要这样做:

echo do_shortcode( \'[someshortocode]\' );
您应该这样做:

echo someshortocode_callback();
显然,要将短代码回调用作模板标记,必须以允许这种使用的方式对短代码进行编码,因此这可能是不可能的(尽管我从未找到不允许直接使用回调的短代码,但它可能存在)。在这种情况下,并且只有在这种情况下,我会使用do_shortcode( \'[someshortcode]\' ) (我从未真正使用过它)。

请注意,短码是PHP占位符,用于无法插入PHP代码的地方,这就是为什么我在PHP脚本中使用它们毫无意义的原因。

SO网友:Milo

使用do_shortcode 在模板中输出短代码。

echo do_shortcode( \'[theshortcode]\' );

SO网友:Charles Xavier

You can use this.

<?php echo do_shortcode(\'[Shortcode_goes_here]\') ?>

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请