wpml translate blogroll Link categories

linkslist widget

我没有找到更好的办法,后来想了另一个办法:

由于WPML 是可以翻译widget title 的,所以我新建一个 blogFoll 的widget,可以填写标题,选择想要显示的分类。

直接粘贴到主题文件的functon.php 里即可。

if (!class_exists('LinksList_Widget')) :

        class LinksList_Widget extends WP_Widget {

            const LANG = 'yaocms';

            function __construct() {
                $widget_ops = array(
                    'classname' => strtolower(get_class($this))
                );

                $control_ops = array('id_base' => strtolower(get_class($this)));

                $this->WP_Widget(strtolower(get_class($this)), __('Links List Widget', self::LANG), $widget_ops, $control_ops);
            }

            function widget($args, $instance) {
                extract($args);

                /* User-selected settings. */
                $title = apply_filters('widget_title', empty($instance['title']) ? 'Links List' : $instance['title'] );
                $link_category = ( isset($instance['link_category']) && $instance['link_category'] > 0 ) ? $instance['link_category'] : "0";

                echo $before_widget;

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

                $args = array(
                    'categorize'        => false,
                    'taxonomy'          => 'link_category',
                    'category'          => $link_category,
                    'title_before'      => '<h2 style="display:none;">',
                    'title_after'       => '</h2>',
                    'category_before'   => '',
                    'category_after'    => ''
                );
                    ?>
                    <div class="recent-news recent-news-slider">

                             <?php wp_list_bookmarks( $args ); ?>

                    </div>
                    <?php
                echo $after_widget;
            }

            function update($new_instance, $old_instance) {

                $instance = $old_instance;

                $instance['title'] = strip_tags($new_instance['title']);

                $instance['link_category'] = $new_instance['link_category'];

                return $instance;
            }

            function form($instance) {

                /* Impostazioni di default del widget */
                $defaults = array(
                    'title' => __('Links List', self::LANG),
                    'link_category' => 0 
                );

                $instance = wp_parse_args((array) $instance, $defaults);
                ?>

                <p>
                   <?php _e('Title', self::LANG) ?>:
                        <input type="text" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $instance['title']; ?>" class="widefat" />
                </p>
                <p>
                    <label for="<?php echo $this->get_field_id('items'); ?>"><?php _e('Category', self::LANG) ?>:
                        <?php wp_dropdown_categories(array( 'show_option_all'    => __('Select one', self::LANG), 'taxonomy' => 'link_category', 'name' => $this->get_field_name('link_category'), 'selected' => $instance['link_category'])); ?>
                    </label>
                </p>
            <?php
        }

    }

    add_action('widgets_init', create_function('', 'return register_widget("LinksList_Widget");'));

endif;