使用作为自定义字段传递的数据在POST中显示图表

时间:2020-09-11 作者:Pete

假设我的帖子中有一个自定义字段,其中包含如下格式的数据:10, 20, 70 (不同帖子的值不同)。

我如何在博客帖子上以饼图的形式显示包含这些数据的图表?

谢谢

1 个回复
SO网友:Antti Koskinen

欢迎使用WPSE。

首先要注意的是,您可能希望将为此功能编写的任何自定义代码放入a custom plugin. 这样,即使有一天您更改了使用的主题,该功能也是独立于主题的,并且对您可用。

现代的方式是创造a custom block, 它处理图表数据的保存和呈现。这可能需要大量的参与,具体取决于您想要创建自定义块的程度。

更简单的选择是创建a custom shortcode 它读取post元数据并返回图表的html标记。自定义块或短代码的好处在于,您可以将其放在帖子内容的任何位置—顶部、中部、底部—或多次使用。

一个简化的解决方案是使用the_content filter. 这样做的缺点是,图表将位于内容的顶部或底部。

您可能希望使用某种javascript图表库来处理图表的实际呈现。使用您最喜欢的搜索引擎查找一个(例如,谷歌js图表并查看出现的内容)。你需要enqueue 与库相关的js和css文件。

要访问快捷码或筛选器回调中的post meta,可以使用get_post_meta() 作用

下面是一个简化的短代码示例,

// add to custom plugin file or (child) theme functions.php file
add_shortcode( \'footag\', \'wpdocs_footag_func\' );
function wpdocs_footag_func( $atts ) {
    // read post meta of the current post
    // you could also pass the post id as a shortcode attribute ($atts)
    $meta = get_post_meta( get_the_ID(), \'your_chart_data_meta_key\', true );
    // helper variable to contain html output
    $output = \'\';
    // do stuff, if chart data exists
    if ( $meta ) {
        $output = \'<div class="chart">some html markup here</div>\';
    }
    // Shortcode should return not echo its output
    return $output; 
}

相关推荐

Get posts for each user

对于学生项目,我使用WordPress和木材(树枝)+ACF在这个项目中,我创建了3种自定义帖子类型:dissertation, subject-imposed 和subject-free每个学生只能按自定义帖子类型创建一篇帖子(我为此创建了一个限制)。但现在我想显示一个列表,列出每个学生的名字和他们的3篇帖子。这样的列表:Nicolas Mapple<自定义职位类型的标题dissertation + 自定义帖子类型名称+图像(ACF字段)自定义帖子类型的标题subject-imposed + 自定