단일 제품 페이지를 비활성화/숨기는 방법
wordpress-woocommerce 사이트에서 단일 상품 상세 페이지를 숨기려고 합니다.어떻게 하면 Woocommerce 기능을 중단하지 않고 이 작업을 수행할 수 있을까요?
숍 페이지에서 생성된 앵커는 삭제할 수 있습니다.이 앵커는 사용자를 한 페이지로 리다이렉트하지 않습니다.그러기 위해서는 이 코드를 함수에 붙여 넣어야 합니다.php 파일.
remove_action(
'woocommerce_before_shop_loop_item',
'woocommerce_template_loop_product_link_open',
10
);
이 코드는 링크를 삭제하지만, 그 후 앵커 클로징 태그를 삭제해야 합니다.또한 HTML이 깨지지 않습니다.
remove_action(
'woocommerce_after_shop_loop_item',
'woocommerce_template_loop_product_link_close',
5
);
기능에 넣으세요.php
//Removes links
add_filter( 'woocommerce_product_is_visible','product_invisible');
function product_invisible(){
return false;
}
//Remove single page
add_filter( 'woocommerce_register_post_type_product','hide_product_page',12,1);
function hide_product_page($args){
$args["publicly_queryable"]=false;
$args["public"]=false;
return $args;
}
제품 페이지의 경우 404를 반환하는 후크는 다음을 사용하여 등록할 수 있습니다.is_product()
도우미 기능
function prevent_access_to_product_page(){
global $post;
if ( is_product() ) {
global $wp_query;
$wp_query->set_404();
status_header(404);
}
}
add_action('wp','prevent_access_to_product_page');
솔루션은 테스트되어 동작하고 있습니다.
주의: 솔루션은 @ale의 답변에 근거한 것입니다.
단일 페이지는 WordPress에서 제공되는 것으로 비활성화할 방법이 없습니다.그러나 단일 제품 페이지에 대한 액세스를 방지하는 몇 가지 방법이 있습니다.
첫 번째 방법은 상점(제품 보관) 템플릿을 편집하고 단일 페이지에 대한 링크가 있는 모든 위치를 삭제하는 것입니다.
두 번째 방법은 페이지가 단일 제품 페이지인 경우 각 페이지 로드를 확인하고 원하는 위치로 사용자를 리디렉션하는 것입니다.
add_action('init','prevent_access_to_product_page');
function prevent_access_to_product_page(){
if ( is_product() ) {
wp_redirect( site_url() );//will redirect to home page
}
}
이 코드를 함수에 포함할 수 있습니다.php 파일.코드를 테스트하지 않았습니다.
대부분의 경우 제품 페이지 링크를 클릭할 수 없도록 하면 제품 페이지로 이동하는 것이 사실상 "비활성화"됩니다.CSS(테마별로 클래스 조정)를 사용하여 실행할 수 있습니다.
.product-title a,
.product-container a,
.product-details a {
pointer-events: none;
}
메모: 페이지 자체는 삭제되지 않지만 클릭을 비활성화하여 페이지로 이동합니다.직접 링크를 통한 페이지 액세스를 비활성화하려면 제공된 리디렉션 솔루션 중 일부를 사용하십시오.
오래된 질문이지만 어떤 대답도 나에게는 통하지 않았다.
이것은 에일과 음드시완의 것을 개작한 것입니다.
add_action('wp','prevent_access_to_product_page');
function prevent_access_to_product_page(){
if ( is_product() ) {
wp_redirect( get_permalink( 269 ) );
}
}
사용하는 것이 좋을지도 모릅니다.template_redirect
액션:
function redirect_if_single_product()
{
if (is_product()) {
wp_safe_redirect(esc_url(home_url()));
exit();
}
}
add_action('template_redirect', 'redirect_if_single_product');
언급URL : https://stackoverflow.com/questions/44197739/how-to-disable-hide-woocommerce-single-product-page
'programing' 카테고리의 다른 글
Spring Boot에서 @WebMvcTest의 Spring Security 설정 클래스를 비활성화합니다. (0) | 2023.03.22 |
---|---|
관계형 데이터베이스에 비해 MongoDB와 같은 스키마가 없는 데이터베이스를 사용하는 장점은 무엇입니까? (0) | 2023.03.22 |
AngularJS 수동으로 컨트롤러 및 템플릿 렌더링 (0) | 2023.03.17 |
일치하는 와일드카드는 엄격하지만 'context:component-scan' 요소에 대한 선언을 찾을 수 없습니다. (0) | 2023.03.17 |
JSON 값에 지정된 속성이 포함되어 있는지 확인하기 위한 SQL 쿼리 (0) | 2023.03.17 |