The translation of the article is provided by UcallWeconn S.M.B.A., ask us for voip wholesale rates, and buy cheap international termination
З кожнай новай версіяй WordPress, аргумент ці яно кваліфікуецца як CMS становіцца трохі цішэй.
У асноўнай WordPress мы віджэты, карыстацкія палі, карыстацкія таксанаміі, і з версіі 2,9, пашырэнне get_post_type. Дадаць некалькі ўбудоў і ўсякіх пост-тыпы і карыстацкія запісы панэляў стаць рэальнасцю.
Усё гэта функцыянальнасць вялікае так доўга як вы, распрацоўнік, ажыццяўляць яе ў спосаб які цвёрдай зламаць. Паколькі раз у руках кліента, небудзь ідзе.
Гнуткія Макет
Тады ёсць пытанне пра макет. Для кліентаў, перасоўванні змесціва з адной калонкі ў іншую можа быць тэхнічнай перашкодай, асабліва для дынамічных сайтаў, якія змяніць утрыманне часта, каб задаволіць рэкламадаўцаў, аўдыторыя патрабуе, і гэтак далей.
Па змаўчанні перацягнуць і падзенне віджэты значная частка нашага арсенала, але дадаўшы свае уласныя віджэты сапраўды можа зрабіць жыццё прасцей як для распрацоўніка і кліента.
Прыклад карыстацкіх віджэтаў
У пошуках, каб даць больш кантролю для канчатковых карыстачоў, Pro Тэма эксперыментуе з больш карыстацкіх віджэтаў. Ад'езд дэма-версію для такіх тэм, як мясцовыя і Elemental прыклады.
Ніжэй прыведзены віджэты мы пачалі ў тым ліку з найболей тэмы, у тым ліку Mimbo Pro :
- Google Adsense. У панэлі кіравання вы ўводзіце ваш лагін і Adsense віджэтаў паказу аб'яў адпаведна. Працуе ў любым з стандартных памераў блока.
- Супольнасць Tweets. Агрэгаты Twitter дзейнасць у адпаведнасці з шыратой месца / даўготы. Утрымоўвае палі для Колькасць Tweets і мільнай зоны.
- Апошні Tweets. Утрымоўвае палі для Імя карыстача і колькасць Tweets
- Паведамленне Аўтар Падрабязнасці. Утрымоўвае аўтара аватара, дата і каментары карміць.
- Хуткія паведамленні. Адлюстроўвае спіс будучыні ад пасады.
- Больш ад гэтага аўтара. Для адной старонкі паведамленняў. Адлюстроўвае пяць загалоўкі з жа аўтара.
- Больш з гэтай катэгорыі. Для адной старонкі паведамленняў. Адлюстроўвае пяць загалоўкі з той жа катэгорыі.
- Папярэдні прагляд. Выкарыстанне JavaScript для адлюстравання старонкі Версія для друку і без малюнкаў.
- Спасылкі. Дазваляе паведамленню бягучую старонку ў Twitter, StumbleUpon, Digg, Delicious і Facebook.
- YouTube. Адлюстраванне відэа "з палямі для Уставіць код і апісанне
- Карта вашага месцазнаходжання. Карты Google віджэт з палямі для Месца, павялічыць колькасць і тып Выгляд карты (дарожнай карты, спадарожнікавага ці мясцовасці).
- Папулярныя паведамленні. Адлюстроўвае пяць загалоўкі найболей пракаментаваў паведамленні.
- Падпіска на канал. Уключае значок RSS і спасылкі на канал.
Мы атрымалі тон вялікую зваротную сувязь ад карыстачоў, якія належаць на пазіцыянаванне блокаў Adsense Google і жадаеце, каб наладзіць іх утрыманне адпаведна. У выпадку мясцовых, усяго хатнюю старонку на 90% віджэты, з чатырма калонамі наладзіць. Не кажучы ўжо пра пісьменнікаў у гиперлокальные прасторы, якія пішуць унікальны кантэнт, але і абапірацца на агульную з іншых сайтаў і сацыяльных СМІ.
Як карыстацкіх віджэтаў працы
У найпростым магчымым узроўні, карыстацкіх віджэтаў ажыццяўляюцца 1) стварэнне класа, і 2) рэгістрацыя новага віджэта. Забудзьцеся пра функцыянальнасць у рамках віджэт на хвіліну і паглядзець на базавыя налады, якія вы б пасты ў functions.php:
class My_Widget extends WP_Widget {
function My_Widget() {
parent::WP_Widget(false, 'Our Test Widget');
}
function form($instance) {
// outputs the options form on admin
}
function update($new_instance, $old_instance) {
// processes widget options to be saved
return $new_instance;
}
function widget($args, $instance) {
// outputs the content of the widget
}
}
register_widget('My_Widget');
Вось і ўсё. Зараз мы можам наведаць наш віджэты панэлі для пацверджання:

Даданне функцыянальнасці у рэдагуемыя нашага віджэта гэта ўжо іншая гісторыя. Выкарыстанне "Папулярныя запісы" віджэтаў, як, напрыклад, мой партнёр Бэн Gillbanks будзе хадзіць з намі праз стварэнне адпачынку.
Стварэнне "Папулярныя запісы" Виджет
Па-першае, мы павінны назваць клас віджэта. Я прэфікс сваіх функцый і класаў з bm_ (двайковых Месяцы), а гэта азначае, што ніколі не будзе ніякага сутыкнення з іншымі функцыямі і ўбудоў.
Мы можам затым назва віджэта ў канструктар, які з'яўляецца першай функцыі, і ён павінен мець то ж імя, як класа. Гэта будзе выкліканы, калі клас упершыню створаны і ён вызначае імя, якія вы бачыце ў віджэт рэдактара.
Затым я ствараю апошні метад, які з'яўляецца адной з формаў функцыю, якая вызначае, якія дадзеныя могуць быць даступныя для рэдагавання ў віджэт. У гэтым выпадку, гэта проста назва віджэта, які будзе адлюстроўвацца ў блогу. Метад абнаўлення часта можа заставацца як ёсць, хоць вы можаце зрабіць некаторыя праверкі дадзеных (пераканаецеся, што ўваходныя дадзеныя ў бяспецы / дапушчаецца).
І, нарэшце, віджэт метад. Гэта дзе сам віджэт адлюстроўваецца. Вы заўважыце, я насамрэч праходзілай аргументаў іншай функцыі, якія ў іншых месцах у тэму. Таму я зрабіць гэта, таму што я жадаў бы падзяліць дысплей асобна так, што я магу выкарыстоўваць функцыі непасрэдна ў тэму без віджэтаў, а таксама.
Звернеце ўвагу на $ аргументы параметр у віджэте метад. Гэтыя аргументы з'яўляюцца насамрэч аргументы, якія вы перайсці да бакавой панэлі метадам зарэгістравацца, before_widget, after_widget і г.д. Вы можаце пазнаць больш пра гэтых і стварэнні карыстацкіх віджэтаў на WordPress Кодэкс Виджет API старонцы.
Вось канчатковы код:
<?php
class bm_widget_popularPosts extends WP_Widget {
function bm_widget_popularPosts() {
parent::WP_Widget(false, 'Popular Posts');
}
function widget($args, $instance) {
$args['title'] = $instance['title'];
bm_popularPosts($args);
}
function update($new_instance, $old_instance) {
return $new_instance;
}
function form($instance) {
$title = esc_attr($instance['title']);
?>
<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?> <input class="widefat"
id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<
?php echo $title; ?>" /></label></p> <?php
}
}
function bm_popularPosts($args = array(), $displayComments = TRUE, $interval = '') {
global $wpdb;
$postCount = 5;
$request = 'SELECT *
FROM '. $wpdb->posts. '
WHERE ';
if ($interval != '') {
$request .= 'post_date>DATE_SUB(NOW(), '. $interval. ') ';
}
$request .= 'post_status="publish"
AND comment_count > 0
ORDER BY comment_count DESC LIMIT 0, '. $postCount;
$posts = $wpdb->get_results($request);
if (count($posts) >= 1) {
if (!isset($args['title']) {
$args['title'] = 'Popular Posts';
}
foreach ($posts as $post) {
wp_cache_add($post->ID, $post, 'posts');
$popularPosts[] = array(
'title' => stripslashes($post->post_title),
'url' => get_permalink($post->ID),
'comment_count' => $post->comment_count,
);
}
echo $args['before_widget']. $args['before_title']. $args['title']. $args['after_title'];?>
<ol>
<?php
foreach ($popularPosts as $post) {
?>
<li>
<a href="<?php echo $post['url'];?>"><?php echo $post['title']; ?></a>
<?php
if ($displayComments) {
?>
(<?php echo $post['comment_count']. ' '. __('comments', BM_THEMENAME); ?>)
<?php
}
?>
</li>
<?php
}
?>
</ol>
<?php
echo $args['after_widget'];
}
}
?>Далейшага выкарыстання для ўласных віджэтаў?
Кліенты часта маюць патрэбу ў адмысловых апавяшчэнняў і іншых дынамічных біт для адлюстравання на сваім сайце з мінімальнымі ўсталёўкі. Якія іншыя кантэнт, які часта ажыццяўляюцца з дапамогай убудоў бы вялікі віджэта?
