2017-12-04 20 views
0

최근에 wp 사용자 정의 플러그인으로 사용자 정의 프로그램 설정을 재설정 했으므로 사용자가 테마를 새로 설치할 때 발생할 수있는 특정 오류 주제를 알기 위해이 작업을 수행했습니다. 아웃 커스터마이징 인터페이스에서 모든 것이 잘 작동하지만 실제로 디자인을로드 할 때 완전히 다른 결과를 얻습니다. 여기 Wordpress 사용자 정의 프로그램은 사용자 정의 프로그램 인터페이스에서 완벽하게 작동하지만 실제 디자인에서는 작동하지 않습니다.

은 카스타 여기

Blog actual result

를 재설정 내가 customizer.php 옵션에서 설정에서 변경 사용하고있는 코드입니다 후에는

Customizer result

블로그 결과 모습입니다 (내 설정 패턴에 문제가 있다고 생각하지 마십시오)

$wp_customize->add_setting(
     'sq_hide_blog_info', 
     array(
      'default'   => true, 
    ) 
); 

    $wp_customize->add_control(
     new Toggle_Checkbox_Custom_control(
      $wp_customize, 
      'sq_hide_blog_ctr', 
      array(
       'description' => __('Display Site name/Description'), 
       'label' => __('Check here'), 
       'section' => 'custom_footer_text', 
       'settings' => 'sq_hide_blog_info', 
       'type'  => 'checkbox', 
       'section' => 'sq_nav_design' 
      ) 
     ) 
    ); 

여기 실제 코드의 옵션을 변경하는 데 사용하고 있습니다.

예를

<?php if(get_theme_mod('nav_type_select') == 1): ?> 
       <?php include get_template_directory() . '/template-parts/header/header-1.php'?> 
       <?php else: ?> 
       <?php include get_template_directory() . '/template-parts/header/header-2.php'?> 
       <?php endif; ?>  

위의 설정은 체크 박스 및 기본 출력은 1로 설정, 나는 의미, 그 탐색 (1)를 선택한 경우 그렇지 않으면, 기본값으로, 탐색 경우 출력 탐색이 다음 출력 1, 선택되지 않은 다음 nav 2를 출력합니다. 사용자 정의 기본값을 재설정 할 때까지 모든 것이 잘 작동했습니다. 새로 설치하면 동일한 오류가 발생합니다.

코드의 설정이 참조 용으로 사용 된 customizer.php의 값으로 계산되지 않는다는 것을 알고 있습니다.

전적으로 fallback되지 않고 테마의 출력 기본값을 커스터마이져에 따라 다릅니다.

내 본능은 내 if 문을 배치 한 방식에서 문제가 발생했다고 말하고 있습니다. 왜냐하면 그 패턴을 내 코드를 통해 사용했기 때문입니다.

미리 감사드립니다. 귀하의 도움에 진심으로 감사드립니다.

명확해야 함 : 도움이 필요하면 if if else 패턴이 올바른지 확인하십시오. 예이면 맞춤 설정 도구를 사용하여 기본 페이지의 새 설정을 실제로 업데이트 할 수 있습니다.

답변

0

는이 조각을 시도 get_theme_mod()

에서 테마 변경 이름을 통과해야

<?php if(checked(get_theme_mod('sq_hide_blog_info', true), true, false)) : ?> 
<?php include get_template_directory() . '/template-parts/header/header-1.php'?> 
<?php else : ?> 
<?php include get_template_directory() . '/template-parts/header/header-2.php'?> 
<?php endif; ?> 
+0

budyd에게 감사하지만 결과적으로 출력 또는 wordpress 체크 박스는 1 또는 0/true 또는 false입니까? –

+0

안녕하세요, ** 사용자 정의 컨트롤 **를 사용하고 있습니다. 컨트롤에 따라 다릅니다. Toggle_Checkbox_Custom_control' 기본값에 ** true **를 전달하므로 true/false로 생각합니다. –

0

내가 모든 설정이 갱신 된 경우에도이 나를 위해 일한이

를 해결할 수 있었다

if (get_theme_mod ('my_banner_setting', 1) == 1) {

// proceed