Задача №1
Вот код, он вычисляет на какой странице мы находимся и общее количество страниц на сайте. Его единственная проблема, это 0 значение общего количества страниц.
Например если общее количество статей = 3, а на страницах выводится по 10 статей, то общее количество страниц сайта = 0.
Нужно установить минимальное количество страниц, то есть deafult. И оно должно равняться 1.
PHP:
скопировать код в буфер обмена
<?PHP $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // Страница по счёту, на которой вы находитесь $posts_on_page = get_option('posts_per_page'); // Количество записей на 1 странице $num_posts = wp_count_posts( 'post' ); $num_posts = $num_posts->publish; // Получаем общее количество записей $num_pages = $num_posts / $posts_on_page; // Делим общее на частное $total_num_pages = round($num_pages); // Округление результата и получение общего количества страниц с записями ?> Страница <?PHP echo $paged; ?> из <?PHP echo $total_num_pages; ?>
Задача №2
Есть функция, которая выводит новости. У нее не заданы стандартные значения.
Нужно чтобы в $args = array ( 'cat' => $cat_id, 'showposts' => $number_entries, 'orderby' => 'date' );
$cat_id имело стандартное значение 1, а $number_entries имело стандартное значение 5.
PHP:
скопировать код в буфер обмена
<?PHP class mizter_gives_you_news extends WP_Widget { /* Конструкция: описание, имя и опции виджета */ function mizter_gives_you_news() { $widget_ops = array( 'description' => __ ('Вывод последних новостей') ); $control_ops = array( 'width' => 200, 'height' => 200, 'id_base' => 'mizter_gives_you_news_widget' ); $this->WP_Widget( 'mizter_gives_you_news_widget', __('Новости'), $widget_ops, $control_ops ); } /* Структура виджета, здесь заложено всё */ function widget($args, $instance) { $cat_id = $instance['cat_id']; $number_entries = $instance['number_entries']; $args = array ( 'cat' => $cat_id, 'showposts' => $number_entries, 'orderby' => 'date' ); $mizter_gives_you_news = new WP_Query($args); ?> <div class="widget widget_news_entries"><h2 class="widgettitle">Новости</h2> <?PHP while ($mizter_gives_you_news->have_posts()) : $mizter_gives_you_news->the_post(); ?> <div class="news"> <div class="clearly"><div> <div class="date_container"><span class="date"><?PHP the_time('d.m.Y'); ?></span></div> <div class="clearly"><div> <span class="txt_conteiner"><a href="<?PHP the_permalink() ?>" title="<?PHP the_title(); ?>"> <span class="img_conteiner"> <?PHP the_post_thumbnail (array(40 ,40 )); ?></span> <?PHP the_title(); ?></a></span> </div> <?PHP endwhile; ?> </div> <div class="clearly"><div> <?PHP } /* Обновление данных */ function update($new_instance, $old_instance) { $instance = $old_instance; $instance['cat_id'] = strip_tags($new_instance['cat_id']); $instance['number_entries'] = strip_tags($new_instance['number_entries']); return $instance; } /* Получаемые данные */ function form($instance) { $cat_id = esc_attr($instance['cat_id']); $number_entries = esc_attr($instance['number_entries']); ?> <p> <label for="<?PHP echo $this->get_field_id('cat_id'); ?>"><?PHP _e('ID Рубрики:'); ?></label> <input class="widefat" id="<?PHP echo $this->get_field_id('cat_id'); ?>" name="<?PHP echo $this->get_field_name('cat_id'); ?>" type="text" value="<?PHP echo $cat_id; ?>" /> </p> <p> <label for="<?PHP echo $this->get_field_id('number_entries'); ?>"><?PHP _e('Количество записей:'); ?></label> <input class="widefat" id="<?PHP echo $this->get_field_id('number_entries'); ?>" name="<?PHP echo $this->get_field_name('number_entries'); ?>" type="text" value="<?PHP echo $number_entries; ?>" /> </p> <?PHP } } // Конец класса виджета add_action ('widgets_init', create_function('', 'return register_widget("mizter_gives_you_news");')); // Регистрация виджета?>
|