2016-10-13 3 views
3

이미지 및 제품 이름 링크를 제휴 URL로 리디렉션하도록 Woommerce를 사용자 정의하려고합니다. 이제 제품 페이지에 링크되어 있습니다. Woocommerce의 외부 URL로 리디렉션하고 rel = "nofollow"를 추가하십시오.

지금까지, 나는 functions.php에 나는이 코드 조각을 추가 제휴 외부 링크로 리디렉션 할 수있는 솔루션에 온 : 나는대로 nofollow로이 링크를하고 싶습니다 그러나

add_action('template_redirect', 'redirect_external_products'); 
function redirect_external_products() { 
    global $post; 
    if (is_singular('product') && ! empty($post) && ($product = wc_get_product($post)) && $product->is_type('external')) { 
     wp_redirect($product->get_product_url()); 
     exit; 
    } 
} 

그들은 제휴사 링크이며, 새로운 탭에서 열지 만 몇 가지 코딩 옵션과 플러그인을 시도한 후에 적절한 해결책을 찾지 못했습니다. 모든 외부 링크를 따르지 않는 플러그인을 사용하면 플러그인이 외부 링크로 리디렉션 되어도 내부 링크로 취급되므로 작동하지 않습니다.

도움을 주시면 감사하겠습니다. 감사합니다.

+0

를? 제품 목록 페이지에 있습니까? '기능 woocommerce_template_loop_product_link_open() { \t 에코 '

+1

예, @ verso68은 좋은 해결책이 아닙니다. 플러그인을 업데이트하면 갈 것입니다. 그래서 나는 약간의 갈고리를 찾아야했다. 하지만 제품 URL을 변경하는 훅이 없다는 것에 놀라움을 금치 못했습니다. 그래서 유일한 해결책이므로 답변을 게시하지 않았습니다. –

답변

0

자녀 테마 기능이 추가 : 당신은 따르지을 추가 할

function custom_woocommerce_template_loop_product_link_open() { 
    echo '<a href="' . get_the_permalink() . '" rel="nofollow">'; 
} 

remove_action('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10); 
add_action('woocommerce_before_shop_loop_item', 'custom_woocommerce_template_loop_product_link_open', 10);