【问题标题】:How can I add a css class to my example php code如何在我的示例 php 代码中添加一个 css 类
【发布时间】:2019-10-01 17:45:44
【问题描述】:

我想在这段 php 代码的输出中添加一个类

function acf_esg_tax_field_loc( $atts, $content = null ) {
    $a = shortcode_atts(array('post_id' => "1"), $atts);
    $term = get_field( "field_56cb3d84cf32a", $a['post_id'] );

    echo $term->name;
}

add_shortcode( 'acfesgtax_loc', 'acf_esg_tax_field_loc' );

该代码在我的 Wordpress 函数 php 中用于生成简码。

应该是这样的

function acf_esg_tax_field_loc( $atts, $content = null ) {
    $a = shortcode_atts(array('post_id' => "1"), $atts);
    $term = get_field( "field_56cb3d84cf32a", $a['post_id'] );

    echo '<div class="OutputClass" >';
    echo $term->name;
    echo '</div>'; 
}

add_shortcode( 'acfesgtax_loc', 'acf_esg_tax_field_loc' );

不幸的是,这不起作用。

你能帮忙吗?

【问题讨论】:

  • 问题不清楚
  • 添加类的方法有多种,这取决于回显输出的内容。它可能非常简单,但需要更多细节才能给出一个好的答案
  • 我试图通过调整帖子来更清楚地说明我试图达到的目标。

标签: php html css wordpress class


【解决方案1】:

正如WordPress Code Reference 所述。

请注意,短代码调用的函数不应产生任何类型的输出。简码函数应返回用于替换简码的文本。直接产生输出会导致意想不到的结果。这类似于过滤器函数的行为方式,因为它们不应从调用中产生预期的副作用,因为您无法控制调用它们的时间和位置。

所以首先把它从 echo 改成一个 return。 你可以定义一个变量,连接到它,最后返回它。

结果:

function acf_esg_tax_field_loc( $atts, $content = null ) {
    $a = shortcode_atts(array('post_id' => "1"), $atts);
    $term = get_field( "field_56cb3d84cf32a", $a['post_id'] );

    $sR =  '<div class="OutputClass" >';
    $sR .= $term->name;
    $sR .= '</div>'; 
    return $sR;
}

add_shortcode( 'acfesgtax_loc', 'acf_esg_tax_field_loc' );

【讨论】:

  • 正确!使用 echo 将在代码被解析时输出内容(这可能会破坏事情)。 return 将传递的内容在任何其他时间使用
【解决方案2】:

如果类总是相同的,因此可以硬编码,那么你就非常接近了。只会输出一个回显,因此将其连接起来:

echo '<div class="OutputClass" >'.$term->name.'</div>';

如果它是动态的,并且您需要在某处获取类名并将其传递,那么情况就完全不同了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2014-09-29
    • 1970-01-01
    相关资源
    最近更新 更多