ACF短码加入我的短码增加了不必要的换行符

时间:2015-01-07 作者:Aibrean

At the VERY core, my question is - how to remove linebreaks on a single ACF field that is inserted with the ACF shortcode.

我这里有很多“短代码中的短代码”,所以我将逐步完成这件事。

首先,我使用ACF命令内容的方向。我有两个ACF字段,一个输入WordPress所见即所得,另一个通过ACF快捷码输入第一个ACF字段:

[acf field="home-icons"]

的内容home-icons 字段为(使用自定义短代码和Boostrap 3短代码):

[row xclass="home-icons"]
[column sm="6"][flaticon class="hourglass"][/flaticon] Saves Time[/column]
[column sm="6"][flaticon class="graph-upward"][/flaticon] Benchmarking[/column]
[/row]
[row xclass="home-icons"]
[column sm="6"][flaticon class="24h"][/flaticon] Instant and secure access[/column]
[column sm="6"][flaticon class="site-settings"][/flaticon] Customization[/column]
[/row]
这就是我如何构建我的短代码,flaticon:

function flaticon( $atts, $content = null ) {
    $a = shortcode_atts( array(
        \'class\' => \'flaticon\',
    ), $atts );

    return \'<i class="btn-icon btn-footer flaticon-\' . esc_attr($a[\'class\']) . \'"></i>\' . $content . \'\';
}
add_shortcode( \'flaticon\', \'flaticon\' );
这是预期输出:

<div class="row home-icons">
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-hourglass"></i> Saves Time</div>
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-graph-upward"></i>&nbsp;Benchmarking</div>
</div>
这是实际输出:

<div class="row home-icons"><br>
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-hourglass"></i> Saves Time</div><br>
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-graph-upward"></i>&nbsp;Benchmarking</div><br>
</div>
它添加了不必要的换行符,从而改变了内容,使图标不会对齐。现在的问题是,ACF使用acf_the_content 我不想删除所有的换行符,只是那个字段(home-icons), 但由于这是一个短代码,我不确定如何直接针对它。

是的,我意识到如果我把所有的东西都放在一条线上,可能就没问题了,但这会交给客户,我不会假设他们会保存任何东西,也不会记住这样做。

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

一位同事解决了这个问题。

    function removebreaks($content)
{
    $content = str_replace(\'<br>\', \'\', $content);
    $content = str_replace(\'<br/>\', \'\', $content);
    $content = str_replace(\'<br />\', \'\', $content);
    $content = str_replace(\'<BR>\', \'\', $content);
    $content = str_replace(\'<BR/>\', \'\', $content);
    $content = str_replace(\'<BR />\', \'\', $content);

    return $content;
}
add_filter(\'acf_the_content\', \'removebreaks\');

结束

相关推荐

do_shortcode close

我正在WordPress上使用jscrollpane插件以及高级自定义字段插件。jscrollpane插件使用以下短代码:[vr_jsp] [/vr_jsp] 我有两个不同的自定义字段,需要放在它们自己的上述短代码集之间,它们是:<?php the_field(\'first_content_block\'); ?> <?php the_field(\'second_content_block\'); ?> 我知道您可以使用下面的代码来实现这一点

ACF短码加入我的短码增加了不必要的换行符 - 小码农CODE - 行之有效找到问题解决它

ACF短码加入我的短码增加了不必要的换行符

时间:2015-01-07 作者:Aibrean

At the VERY core, my question is - how to remove linebreaks on a single ACF field that is inserted with the ACF shortcode.

我这里有很多“短代码中的短代码”,所以我将逐步完成这件事。

首先,我使用ACF命令内容的方向。我有两个ACF字段,一个输入WordPress所见即所得,另一个通过ACF快捷码输入第一个ACF字段:

[acf field="home-icons"]

的内容home-icons 字段为(使用自定义短代码和Boostrap 3短代码):

[row xclass="home-icons"]
[column sm="6"][flaticon class="hourglass"][/flaticon] Saves Time[/column]
[column sm="6"][flaticon class="graph-upward"][/flaticon] Benchmarking[/column]
[/row]
[row xclass="home-icons"]
[column sm="6"][flaticon class="24h"][/flaticon] Instant and secure access[/column]
[column sm="6"][flaticon class="site-settings"][/flaticon] Customization[/column]
[/row]
这就是我如何构建我的短代码,flaticon:

function flaticon( $atts, $content = null ) {
    $a = shortcode_atts( array(
        \'class\' => \'flaticon\',
    ), $atts );

    return \'<i class="btn-icon btn-footer flaticon-\' . esc_attr($a[\'class\']) . \'"></i>\' . $content . \'\';
}
add_shortcode( \'flaticon\', \'flaticon\' );
这是预期输出:

<div class="row home-icons">
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-hourglass"></i> Saves Time</div>
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-graph-upward"></i>&nbsp;Benchmarking</div>
</div>
这是实际输出:

<div class="row home-icons"><br>
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-hourglass"></i> Saves Time</div><br>
<div class=" col-sm-6"><i class="btn-icon btn-footer flaticon-graph-upward"></i>&nbsp;Benchmarking</div><br>
</div>
它添加了不必要的换行符,从而改变了内容,使图标不会对齐。现在的问题是,ACF使用acf_the_content 我不想删除所有的换行符,只是那个字段(home-icons), 但由于这是一个短代码,我不确定如何直接针对它。

是的,我意识到如果我把所有的东西都放在一条线上,可能就没问题了,但这会交给客户,我不会假设他们会保存任何东西,也不会记住这样做。

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

一位同事解决了这个问题。

    function removebreaks($content)
{
    $content = str_replace(\'<br>\', \'\', $content);
    $content = str_replace(\'<br/>\', \'\', $content);
    $content = str_replace(\'<br />\', \'\', $content);
    $content = str_replace(\'<BR>\', \'\', $content);
    $content = str_replace(\'<BR/>\', \'\', $content);
    $content = str_replace(\'<BR />\', \'\', $content);

    return $content;
}
add_filter(\'acf_the_content\', \'removebreaks\');

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗