2013-01-13 1 views
3

qTranslate 플러그인을 사용하기 위해 위젯을 수정해야하는 웹 사이트가 있습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있습니까? 사용자가 쉽게 어디에 도움을qtranslate를 지원하도록 사용자 정의 위젯을 수정하려면 어떻게해야합니까?

[:en]English only[:fr]Francais only

감사처럼 비밀 고통 대신 장내의 정보를 입력하는 방법을 알 수 있도록

기본적으로 나는 나의 입력 필드는 모든 언어에 표시하고 싶은

답변

0

AFAIK, 사용자 정의 번역 필드에서 원하는 위젯을 복제해야합니다.

다음은 /wp-includes/default-widgets.php에서 복사 한 검색 위젯의 적응이다.

모든 FIELD_language 옵션 값을 최적화하여 사용 가능한 모든 언어로 foreach을 수행 할 수 있습니다.

add_action('widgets_init', 'qtrans_search_widget_so_14303711'); 

function qtrans_search_widget_so_14303711() 
{ 
    unregister_widget('WP_Widget_Search'); 
    register_widget('QT_Widget_Search'); 
} 

class QT_Widget_Search extends WP_Widget { 

    function __construct() { 
     $widget_ops = array('classname' => 'widget_search', 'description' => __("A search form for your site")); 
     parent::__construct('search', __('Search'), $widget_ops); 
    } 

    function widget($args, $instance) { 
     extract($args); 
     $title_en = empty($instance['title_en']) ? '' : $instance['title_en'] ; 
     $title_fr = empty($instance['title_fr']) ? '' : $instance['title_fr'] ; 

     // THIS PART CAN BE GREATLY OPTIMIZED 
     $lingo = qtrans_getLanguage(); 
     if ('en' == $lingo) 
      $title = $title_en; 
     else 
      $title = $title_fr; 

     echo $before_widget; 
     if ($title) 
      echo $before_title . $title . $after_title; 

     // Use current theme search form if it exists 
     get_search_form(); 

     echo $after_widget; 
    } 

    function form($instance) { 
     $instance = wp_parse_args((array) $instance, array('title_en' => '', 'title_fr' => '')); 
     $title_en = $instance['title_en']; 
     $title_fr = $instance['title_fr']; 
?> 
     <p><label for="<?php echo $this->get_field_id('title_en'); ?>"><?php _e('Title English:'); ?> <input class="widefat" id="<?php echo $this->get_field_id('title_en'); ?>" name="<?php echo $this->get_field_name('title_en'); ?>" type="text" value="<?php echo esc_attr($title_en); ?>" /></label></p> 
    <p><label for="<?php echo $this->get_field_id('title_fr'); ?>"><?php _e('Title Français:'); ?> <input class="widefat" id="<?php echo $this->get_field_id('title_fr'); ?>" name="<?php echo $this->get_field_name('title_fr'); ?>" type="text" value="<?php echo esc_attr($title_fr); ?>" /></label></p> 
<?php 
    } 

    function update($new_instance, $old_instance) { 
     $instance = $old_instance; 
     $new_instance = wp_parse_args((array) $new_instance, array('title_en' => '', 'title_fr' => '')); 
     $instance['title_en'] = strip_tags($new_instance['title_en']); 
     $instance['title_fr'] = strip_tags($new_instance['title_fr']); 
     return $instance; 
    } 

} 

그것은 렌더링 :

custom search widget for qTranslate