如果字段框中没有内容,我是否可以隐藏自定义标签。我正在使用高级自定义字段插件实现此功能。到目前为止,即使没有放置内容,标签仍然存在
以下是我在functions.php中放置的代码
add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {
// Adds the new tab
$tabs['direction_tab'] = array(
'title' => __( 'Direction', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_new_direction_tab_content'
);
return $tabs;
}
function woo_new_direction_tab_content() {
// The new tab content
echo the_field('directions');
}
更新
//Direction Tab
add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {
// Adds the new tab
$tabs['direction_tab'] = array(
'title' => __( 'Direction', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_new_direction_tab_content'
);
return $tabs;
}
function woo_new_direction_tab_content() {
if( get_field('directions') )
{
echo the_field('directions');
}
else
{
echo "<style>li.direction_tab_tab{ display:none !important; }</style>";
}
}
答案 0 :(得分:2)
最有可能采取更好的方法,但过去我已经实现了以下目标:
if( get_field('directions') )
{
echo the_field('directions');
}
else
{
echo "<style>.direction_tab_tab { display:none !important; }</style>";
}
这将打印“directions”字段的内容,如果有文本,如果没有,它将打印css并隐藏选项卡。
答案 1 :(得分:1)
最简单的方法是删除标签。
您可以根据文本字段的内容执行此操作,如果为空,只需使用此文件。
unset( $tabs['direction_tab'] ); // Remove the additional direction tab
你完成了:)
答案 2 :(得分:1)
Hej,我遇到了同样的问题,并找到了解决这个问题的更好方法。我只在有内容时添加标签。也许这有助于其他人找到这个主题。
add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {
// Adds the new tab
if (!empty(the_field('directions'))) {
$tabs['direction_tab'] = array(
'title' => __( 'Direction', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_new_direction_tab_content'
);
}
return $tabs;
}
function woo_new_direction_tab_content() {
// The new tab content
echo the_field('directions');
}
答案 3 :(得分:0)
您可以使用get_field()检查是否有可用的内容。
add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {
// Check if there is content and add the tab if so
if(get_field(direction_tab)){
$tabs['direction_tab'] = array(
'title' => __( 'Direction', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_new_direction_tab_content'
);
}
return $tabs;
}
function woo_new_direction_tab_content() {
echo get_field('directions');
}
答案 4 :(得分:0)
基本上,您使用带有选项卡内容的字段来有条件地显示选项卡。代码检查字段是否为空,如果是,则取消设置选项卡,使其不显示。如果该字段包含内容,则返回该内容。我也用条件调整了标签内容。即检查是否有内容,如果有,则返回选项卡。这是可选的,因为即使没有检查,如果字段中没有内容,也不会返回选项卡。
add_filter( 'woocommerce_product_tabs', 'woo_new_direction_tab' );
function woo_new_direction_tab( $tabs ) {
// Adds the new tab
$tabs['direction_tab'] = array(
'title' => __( 'Direction', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_new_direction_tab_content'
);
if(empty(get_field('directions'))):
unset( $tabs['direction_tab'] );
else:
return $tabs;
endif;
}
function woo_new_direction_tab_content() {
// The new tab content
if(get_field('directions')):
echo '<h2>Directions</h2>';
the_field('directions');
endif;
}
答案 5 :(得分:0)
一种更好的方法是
if( get_field('directions') ) {
$tabs['direction_tab'] = array(
'title' => __( 'Direction', 'woocommerce' ),
'priority' => 60,
'callback' => 'woo_new_direction_tab_content'
);
}
如果该标签中没有内容,则会隐藏该标签