在函数中调用自定义字段值。php

时间:2022-02-05 作者:vyperlook

我正在为我将直接在帖子内容中使用的短代码创建一个函数(使用[my_description_number] shortcode),它可以工作,但我无法调用(echo或print)自定义字段值。

这将不会打印自定义字段值,也许您知道如何使其工作?仅打印自定义字段的值song_number 何时调用快捷码

非常感谢

function wpb_description_shortcode( $atts ) : string {
    ob_start();
    ?>
    
  <?php if (get_post_meta(get_the_ID(), \'song_number\', true)) { ?> 
  <?php echo get_post_meta($post->ID, \'song_number\', true); ?><br/>
  
  <?php } else { ?>   <?php } ?> 

    <?php
    return ob_get_clean();
}
// Register shortcode
add_shortcode(\'my_description_number\', \'wpb_description_shortcode\');```

1 个回复
最合适的回答,由SO网友:rudtek 整理而成

如果您不打算添加太多html,则无需使用ob_start 只需返回php:

function wpb_description_shortcode( ){
    
    if (get_post_meta(get_the_ID(), \'song_number\', true)) { 
        return get_post_meta(get_the_ID(), \'song_number\', true).\'<br/>\';
    } else {
        return;
    }

}
// Register shortcode
add_shortcode(\'my_description_number\', \'wpb_description_shortcode\');
我不确定这些数据是什么,但为了安全起见,最好也对其进行清理。

如果您计划添加更多字段,可以这样做:

function wpb_description_shortcode( ){
    $output = \'\';
    if (get_post_meta(get_the_ID(), \'song_number\', true)) { 
        $output .= get_post_meta(get_the_ID(), \'song_number\', true).\'<br/>\';
    } 
    if (get_post_meta(get_the_ID(), \'another_field\', true)) { 
        $output .= get_post_meta(get_the_ID(), \'another_field\', true).\'<br/>\';
    }
    //random html
    $output .= \'<h3> cool html </h3>\';
    if (get_post_meta(get_the_ID(), \'even_another\', true)) { 
        $output .= get_post_meta(get_the_ID(), \'even_another.\', true).\'<br/>\';
    } 
    return $output;
}
// Register shortcode
add_shortcode(\'my_description_number\', \'wpb_description_shortcode\');

相关推荐

如何在Archive.php模板上创建分页

我正在创建一个自定义主题,我正在努力使分页在我的归档文件中工作。php模板。我试图修改我在博客主页上使用的代码,但它只是显示所有的博客文章,而不仅仅是那些带有特定标签或类别的文章。知道我哪里出了问题,以及如何获取档案吗。php模板在分页时应如何工作?提前感谢,汤姆<?php get_header(); ?> <!-- PAGE INTRODUCTION --> <div class="container">&