我有一个带有所见即所得编辑器的主题设置页面。我想使用内部属性的短代码。
这是具有属性的短代码之一,用作示例:
function row( $atts, $content = null ) {
extract(shortcode_atts(
array(
'paddingtop' => 'PADDINGTOP',
), $atts )
);
return '<div class="row" style="padding-top:'.$paddingtop.';"></div>';
}
add_shortcode( 'fila', 'row');
在这里,我将wysiwyg编辑器添加到我的主题设置页面:
array(
'name' => '',
'id' => 'editor_top_shop',
'type' => 'editor',
'note' => '',
),
这是我在编辑器中检查和打印内容的方式:
<?php if ( get_option( 'editor_top_shop' ) == true ) {
$top_shop = get_option( 'editor_top_shop' );
echo stripslashes(apply_filters("the_content", $top_shop));
<?php } ?>
编辑器中的短代码:
[fila paddingtop="40px"]
最后,这是HTML输出:
<div class="row" style="padding-top:PADDINGTOP;"></div>
我很感激一些反馈,我对此感到生气:(
非常感谢! 家Frede
答案 0 :(得分:0)
你的代码很干净......我也不明白为什么这应该是结果,除非你的短代码属性名称有拼写错误。同时,尝试将paddingtop属性设置为默认值40px而不是&#34; PADDINGTOP&#34;。然后尝试更改属性的值。
<?php
function row( $atts, $content = null ) {
extract(shortcode_atts(
array(
'paddingtop' => '40px', /*<== DOESN'T MATTER BUT TRY DEFAULTING THIS TO 40px */
), $atts )
);
return '<div class="row" style="padding-top:'. $paddingtop .';"></div>';
}
add_shortcode( 'fila', 'row');
另一种方法可能是删除提取功能(因为你只有一个属性可以处理)并自己手动提取:
function row( $atts, $content = null ) {
$paddingTop = isset($atts['paddingtop']) ? $atts['paddingtop'] : "40px";
return '<div class="row" style="padding-top:'. $paddingTop .';"></div>';
}
add_shortcode( 'fila', 'row');
答案 1 :(得分:0)
最后我找到了一个解决方案:)
正如你所说@Poiz,几乎所有的代码都没问题,但我在打印时做了一些改动。这是解决方案:
$top_shop = get_option( 'ace_top_shop' );
$top_shop = stripslashes($top_shop);
echo (apply_filters("the_content", $top_shop));
我必须单独进行脱片而不是同时进行。不知道为什么......但它的工作原理! :)