Произвольные поля wordpress
DESCRIPTION
Зачем они нужны? Как их использовать? Как упростить работу с ними для пользователей?TRANSCRIPT
Произвольные поля WordPress
- Зачем они нужны?- Как их использовать?- Как упростить работу с ними для пользователей?
Чтотакоепроизвольныеполя
• Могут хранить любую информацию, связанную с записью, которая не укладывается в рамки стандарта.
• Позволяют использовать как текст и числа, так и картинки.• Значения могут меняться как самим пользователем, так и
автоматически, согласно задумке разработчика.• Значения произвольных полей могут быть использованы для
каких-либо вычислений в теме оформления.
Какихможноиспользовать• Указать дополнительную информацию для записи:• Для книги: фамилия автора, год издания, издательство etc• Для фильма: режиссер, год выпуска, жанр etc• Для питомников: порода собаки, чемпионские титулы,
особенности особи• ЖЖ-стиль: настроение, музыка в колонках etc
• Указать картинку, которая должна выводиться где-нибудь на странице записи.
• Указать информацию, видимую только авторизованным пользователям.
• Использовать разное оформление для разных записей без привязки к категории/типу записи.
• Подсчитывать количество посещений страницы.• Выводить свои Google Maps для каждой записи.
Простоеиспользование
• Указываем ключи и значения.• В нужном месте в шаблоне добавляем строчку
<?php the_meta(); ?>• Публикуем запись и видим список наших полей.
Дажетакойпростой выводможнонастроить
повкусу• Выводимый список снабжен всеми необходимыми
классами для настройки внешнего вида через CSS:
<ul class='post-meta'><li><span class='post-meta-key'>Читаю:</span>
Раймонд Фэйст, "Королевский пират"</li><li><span class='post-meta-key'>Слушаю:</span>
Финрод-зонг</li><li><span class='post-meta-key'>Делаю:</span>
Очередной проект</li></ul>
Еслинужновывести ?толькооднополе
Без проблем. В таком случае нужно использовать конструкцию:<?php echo get_post_meta($post->ID, "ключ_поля", true); ?>
Первый параметр – id записи, для которой запрашивается произвольное поле.Второй – собственно, ключ запрашиваемого поля.Третий параметр может принимать значения true или false. При значении true функция вернет результат как текстовую переменную. А значение false (или пустое!) вернет массив данных для дальнейшего использования в PHP.
Текст толькодлязарегистрированных
<?php if ( is_user_logged_in() ) {echo 'Автор статьи: ';
echo (get_post_meta($post->ID, 'avtor', true));} else { echo 'здесь можете написать, что увидят незарегистрированные пользователи';} ?>
Подсказка: в поле может быть и ссылка на скачивание чего-либо ;-)
Картинканастраницезаписи<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?><div class="entry"><?php $splashimg = get_post_meta($post->ID, 'post-image', $single = true); ?><?php if($splashimg !== '') { ?>
<img src="<?php echo $splashimg; ?>" alt="<?php { echo the_title(); } ?>" /><?php } else { echo ''; } ?><h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></ a></h2><?php the_content(); ?></div><?php endwhile; endif; ?>
CSS =)позаявкам• Для этого добавим поле с ключом my_class и значением
new_fon – это и будет название класса.
• СТРАНИЦА:<?php $additional_class = get_post_meta($post->ID, 'my_class', true); ?><div class="my_post <?php echo $additional_class; ?> ">
<?php the_content(); ?></div>• CSS:.new_fon {background: #ff0;}
РазныесайдбарыдлязаписейНаходим в файлах Темы вызов сайдбара:
<?php get_sidebar(); ?> и заменяем его на:<?php $sidebar = get_post_meta($post->ID, "sidebar", true); ?>
<?php get_sidebar($sidebar); ?>
Теперь в каждой записи создаем произвольное поле sidebar, а в значение пишем ему часть имени (после sidebar- ) того сайдбара, который хотим показывать при просмотре этой записи: var2или var3. Если у одиночной записи нет произвольного поля sidebar, то выведется сайдбар «по умолчанию» sidebar.php
Выводим индивидуальный текст
moreдляИщем в single.php (файле, отвечающем за вывод одиночной записи) строчку
<?php the_content("Читать далее »"); ?> и заменяем на:<?php $custommore = get_post_meta( $post->ID, 'custom_more', true); ?> <?php if (!$custommore) { $custommore = 'Читать далее »'; } ?> <?php the_content($custommore); ?>
В записи создаем ключ произвольного поля custom_more и в значение пишем свой текст.
? Гдехранятся $wpdb->postmeta• 'meta_id' – Уникальный id.• 'post_id' – Id записи, с которой связано поле.• 'meta_key' – Имя-ключ.• 'meta_value' – Значение ключа.[ postid1 => [key1 => [ val1, val2, ... ],key2 => [ val1, val2, ... ],...], postid2 => [key1 => [ val1, val2, ... ], key2 => [ val1, val2, ... ], ...],...]
$readinglist = $post_meta_cache[256]['reading'];
- Облегчаемработу I• http://
wp-kama.ru/id_740/blok-proizvolnyih-poley-v-adminke-wordpress-svoimi-rukami.html
- Облегчаемработу II• http://www.sooource.net/wordpress-fields-edit-widget
Google Maps &WordPress
• http://dandreev.com/blog/wordpress/google-maps-v-wordpress/
• http://wordpress.org/extend/plugins/geo-mashup/
• http://code.google.com/p/wordpress-geo-mashup/
!Благодарюзавнимание