删除插件函数并通过unctions.php将其添加回

时间:2017-10-09 作者:Amy Ling

我正在使用WooCommerce和一个名为WooCommerce商店PDF目录的插件。

在前端。php文件,有2个操作。1是在类别页面上创建可下载的pdf按钮,并在单个产品页面上创建可下载的pdf。

我想删除单个产品页面上的操作,并仅将其应用于特定类别的单个页面。

例如,我有5个类别,但我只想将该按钮应用于类别#3。

这就是代码的样子

public function display_button_on_single() {
    global $wp_query;

    $post_ids = array();

    // gather all ids
    foreach( $wp_query->posts as $post ) {
        $post_ids[] = $post->ID;
    }

    $output = \'\';
    $output .= \'<p class="wc-store-catalog-pdf-download">\' . PHP_EOL;

    $output .= \'<a href="#" class="wc-store-catalog-pdf-download-link button" target="_blank" download=""><i class="icon-file-pdf" aria-hidden="true"></i> \' . $this->link_label . \'</a>\' . PHP_EOL;

    $output .= \'<input type="hidden" value="true" name="is_single" />\' . PHP_EOL;

    $output .= \'<input type="hidden" value="\' . esc_attr( json_encode( $post_ids ) ) . \'" name="posts" />\' . PHP_EOL;

    $output .= \'</p>\' . PHP_EOL;

    echo $output;
}
该按钮在woocommerce\\u single\\u product\\u summary挂钩中生成。

1 个回复
SO网友:ngearing

您可以使用has_term 要检查帖子是否有“类别”,如果没有,您可以提前返回函数,或者理想情况下,您只会将此函数添加到所选“类别”的帖子中,但是您没有显示添加此操作的代码,因此我不会对此发表评论。

尝试以下操作:

public function display_button_on_single() {
    global $wp_query;

    if ( ! has_term(\'category_3\', \'taxonomy_name\')) {
        return;
    }

    $post_ids = array();
    // the rest of your function...

https://developer.wordpress.org/reference/functions/has_term/

结束

相关推荐