当产品自定义字段不为空时在表头显示按钮

时间:2017-07-06 作者:Soothsayer92

我正在WooCommerce,WordPress创建一个网站。目前,我正在开发一个功能,当产品自定义字段包含URL时,标题中会显示名为“LIVE TRANSMISSION”的按钮(整个网站上只有一个产品的此字段一次不能为空),单击按钮会将用户重定向到LIVE TRANSMISSION所在的产品页面。我知道如何在产品页面上做到这一点,它正确地显示了,但如何在整个网站的标题中显示此按钮,并将用户重定向到目前具有唯一传输的产品?“知道”哪个产品启用了此功能的最佳方法是什么?我想不出来。

<div class="top-buttons">
    <?php
         $transmissionURL = get_field(\'transmission_URL\');
         if (!empty($transmissionURL)) {
            echo \'<a href="URL-to-product-which-have-active-transmission" class="btn">LIVE</a>\';
         }
     ?>
</div>

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

我建议两种解决方案。

Solution:1 使用WP\\U查询,如果产品很少,可能是10或20

使用WP\\u查询,遍历所有产品,检查是否transmission_URL 不为空,如果不为空,则打印链接并断开循环。

下面的代码段位于标头内部。php

$product_query = new WP_Query( array( 
  \'post_type\' => \'product\' 
) );
if( $product_query->have_posts() ):
 while( $product_query->have_posts() ): $product_query->the_post();
   $transmissionURL = get_field(\'transmission_URL\');
   if (! empty( $transmissionURL ) ) :
    echo \'<a href="URL-to-product-which-have-active-transmission" class="btn">LIVE</a>\';
    break; // come out of while loop entirely, cause we are done.
   else:
    continue; // skip to the next product, stay inside while loop.
   endif;
 endwhile;
endif;
<小时>Solution 2: 利用类别。

如果产品数量较多或您想节省一些维护时间,

创建并分配新类别active-transmissionproduct_cat 分类学然后,您可以只查询具有类别的产品active-transmission. 这还允许轻松跟踪以前传输的ed产品。

$product_query = new WP_Query( array( 
  \'post_type\' => \'product\',
  \'posts_per_page\' => 1, // pull out only one product from the category
  \'tax_query\' => array(
        array(
            \'taxonomy\' => \'product_cat\',
            \'field\'    => \'slug\',
            \'terms\'    => \'active-transmission\',
        ),
    ), 
) );
if( $product_query->have_posts() ):
 while( $product_query->have_posts() ): $product_query->the_post();
   $transmissionURL = get_field(\'transmission_URL\');
   if (! empty( $transmissionURL ) ) :
    echo \'<a href="URL-to-product-which-have-active-transmission" class="btn">LIVE</a>\';
   endif;
 endwhile;
endif;
可以根据需要修改If块。

结束

相关推荐

Admin-ajax.php在子域上无法正常工作

我试图将产品价格(从数据库中提取)乘以cookie存储的货币,对应于切换语言。为了实现这一点,我使用了AJAX脚本和几种方法。问题在于方法currencyRates();尽管在测试环境中,一切都很正常(我使用的是子文件夹而不是子域),但在生产级方法上currencyRates(); 只是返回值1(在方法开始时初始化,当var_dump $rate 在foreach循环中,它给了我期望的值,但当我尝试返回时,它总是在开始变量处初始化的值$rate = 1). 发生了什么事?子域如何影响这种类型的脚本?数据库

当产品自定义字段不为空时在表头显示按钮 - 小码农CODE - 行之有效找到问题解决它

当产品自定义字段不为空时在表头显示按钮

时间:2017-07-06 作者:Soothsayer92

我正在WooCommerce,WordPress创建一个网站。目前,我正在开发一个功能,当产品自定义字段包含URL时,标题中会显示名为“LIVE TRANSMISSION”的按钮(整个网站上只有一个产品的此字段一次不能为空),单击按钮会将用户重定向到LIVE TRANSMISSION所在的产品页面。我知道如何在产品页面上做到这一点,它正确地显示了,但如何在整个网站的标题中显示此按钮,并将用户重定向到目前具有唯一传输的产品?“知道”哪个产品启用了此功能的最佳方法是什么?我想不出来。

<div class="top-buttons">
    <?php
         $transmissionURL = get_field(\'transmission_URL\');
         if (!empty($transmissionURL)) {
            echo \'<a href="URL-to-product-which-have-active-transmission" class="btn">LIVE</a>\';
         }
     ?>
</div>

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

我建议两种解决方案。

Solution:1 使用WP\\U查询,如果产品很少,可能是10或20

使用WP\\u查询,遍历所有产品,检查是否transmission_URL 不为空,如果不为空,则打印链接并断开循环。

下面的代码段位于标头内部。php

$product_query = new WP_Query( array( 
  \'post_type\' => \'product\' 
) );
if( $product_query->have_posts() ):
 while( $product_query->have_posts() ): $product_query->the_post();
   $transmissionURL = get_field(\'transmission_URL\');
   if (! empty( $transmissionURL ) ) :
    echo \'<a href="URL-to-product-which-have-active-transmission" class="btn">LIVE</a>\';
    break; // come out of while loop entirely, cause we are done.
   else:
    continue; // skip to the next product, stay inside while loop.
   endif;
 endwhile;
endif;
<小时>Solution 2: 利用类别。

如果产品数量较多或您想节省一些维护时间,

创建并分配新类别active-transmissionproduct_cat 分类学然后,您可以只查询具有类别的产品active-transmission. 这还允许轻松跟踪以前传输的ed产品。

$product_query = new WP_Query( array( 
  \'post_type\' => \'product\',
  \'posts_per_page\' => 1, // pull out only one product from the category
  \'tax_query\' => array(
        array(
            \'taxonomy\' => \'product_cat\',
            \'field\'    => \'slug\',
            \'terms\'    => \'active-transmission\',
        ),
    ), 
) );
if( $product_query->have_posts() ):
 while( $product_query->have_posts() ): $product_query->the_post();
   $transmissionURL = get_field(\'transmission_URL\');
   if (! empty( $transmissionURL ) ) :
    echo \'<a href="URL-to-product-which-have-active-transmission" class="btn">LIVE</a>\';
   endif;
 endwhile;
endif;
可以根据需要修改If块。

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请