Wordpress Shortcode PHP数组在文本块中的文本

时间:2019-01-30 16:58:01

标签: php html wordpress

我开始在wordpress中创建一个站点(因此没有php或html经验)。我想从mysql列生成文本列表到文本块中。

我为短代码制作了php代码,该代码在下面返回了一个数组,该数组现在在文本块中显示为“数组”,而不是字符串列表。

如果我只是打印这些值,它们将显示在页面的顶部。

我需要做/寻找的下一步是什么?我找不到它,因为我可能不知道正确的搜索词。我的猜测是关于HTML的。

<?php   
function location_marker_shortcode( $atts ) {
   $a = shortcode_atts( array(
      'mapnumber' => 'world'
   ), $atts );

global $wpdb;

//select databases (the 84 part should be the input of the shortcode)
$marker_labels = $wpdb->get_col('SELECT label FROM wp_mapsvg_database_84');

foreach ( $marker_labels as $marker_label ) 
{
    //print labels 
    echo $marker_label;
}

return $marker_labels;

}  
//add shortcode to wordpress
add_shortcode( 'matthijs', 'location_marker_shortcode' );
?>

我现在有了这段代码,它为我提供了我想要的列表,但没有在我的简码所在的wordpress的“段落块”中列出。

<?php   
function location_marker_shortcode( $atts ) {
   $a = shortcode_atts( array(
      'mapnumber' => 'world'
   ), $atts );

global $wpdb;

//select databases (the 84 part should be the input of the shortcode)
$marker_labels = $wpdb->get_col('SELECT label FROM wp_mapsvg_database_84');

foreach ( $marker_labels as $marker_label ) 
{
     echo  '<li>'. $marker_label.'</li>';
}

}  

//add shortcode to wordpress
add_shortcode( 'matthijs', 'location_marker_shortcode' );
?>

1 个答案:

答案 0 :(得分:2)

我不确定您要完成的目标100%,但是请尝试一下。在遍历它们时,您不想回显所有值。将所有内容连接到一个变量中,然后在短代码末尾返回整个字符串。这将生成一个无序列表。

<?php   
function location_marker_shortcode( $atts ) {
   $a = shortcode_atts( array(
      'mapnumber' => 'world'
   ), $atts );

global $wpdb;

//select databases (the 84 part should be the input of the shortcode)
$marker_labels = $wpdb->get_col('SELECT label FROM wp_mapsvg_database_84');

$output = '<ul>';

foreach ( $marker_labels as $marker_label ) 
{
    $output .= '<li>' . $marker_label . '</li>';
}

$output .= '</ul>';

return $ouput;

}  
//add shortcode to wordpress
add_shortcode( 'matthijs', 'location_marker_shortcode' );
?>