如何用快捷码输出一个PHP文件的值?

时间:2015-09-12 作者:nisr

我试图在一个自定义帖子类型中输出ACF插件创建的两个自定义字段的值。我实际上需要在弹出窗口中显示这个。wordpress弹出式插件不支持php代码,只能从内容编辑器中调用短代码。因此,我试图创建一个快捷码,以便在弹出窗口的编辑器中显示自定义字段的值。我知道我们可以生成短代码[cite] 在主题函数中使用此代码。php

function cite_shortcode() {
}
add_shortcode( \'cite\', \'cite_shortcode\' );
但我不知道如何将php代码添加到该代码中。我试着做一些类似的事情:

function cite_shortcode() {
<div>
<?php
$object_terms = wp_get_object_terms( $post->ID, \'issue\', array( \'fields\' => \'all\' ) );
if ( $object_terms ) {
    $res = \'\';
    foreach ( $object_terms as $term ) {
        if ( $term->parent ) { 
            $res .=  $term->name . \', \'; 
        }
    }
    echo rtrim($res,\' ,\');  
}
?>), pp: <?php the_field(\'first_page\'); ?>-<?php the_field(\'last_page\'); ?>
</div>
}
add_shortcode( \'cite\', \'cite_shortcode\' );
但它没有起作用。它显示:

分析错误:语法错误,意外

所以,我的问题是:

我如何才能使代码正常工作

3 个回复
SO网友:WPZA

过去我们使用串联变量构建了短代码。

为了解释上面的链接,您应该输出PHP。

 $output = \'<p>\';
 $output .= \'<strong>\' . $content . \'</strong>\';
 $output .= \'</p>\';
 return $output;
注意,请参见.= 变量串联。

SO网友:BigDropGR

以防万一将来有人会搜索这个。。。

通过短代码输出php值的正确方法如下:

add_shortcode(\'shortcode_name\', \'shortcode_callback\');
function shortcode_callback( $atts = array(), $content = null ) {

   $output = "Add your PHP here!!!";

   return $output;

}
来自阳光明媚的希腊的问候!!!

SO网友:Qaisar Feroz

我如何才能使代码正常工作

function cite_shortcode($atts) {
    $output = \'<div>\';

    $object_terms = wp_get_object_terms( $post->ID, \'issue\', array( \'fields\' => \'all\' ) );

    if ( $object_terms ) {

        $res = \'\';

        foreach ( $object_terms as $term ) {

            if ( $term->parent ) { 
                $res .=  $term->name . \', \'; 
            }

        }

        $output .=  rtrim($res,\' ,\');  
    }

    $output .= \'pp: \'.get_the_field(\'first_page\') . \'-\' . get_the_field(\'last_page\');

    $output .= \'</div>\';

    return $output ;
}

add_shortcode( \'cite\', \'cite_shortcode\' );
是否可以将php代码放入cite中。php文件,并通过函数中生成的短代码输出其值。php?如何做到这一点在这种情况下,您可以在短代码中包含php文件,类似于此代码

function cite_shortcode($atts) {
    $output = \'\';

    ob_start();

    include "yourphpfile.php"; // Replace with exact location of php file 


    $output .= ob_get_clean();

    return $output ;
}

add_shortcode( \'cite\', \'cite_shortcode\' );
我希望这有帮助。

相关推荐

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

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