Сначала расскажу о том, что такое произвольные поля (custom fields) для WordPress и как их использовать, а затем приведу парочку примеров для применения. Дело в том, что в некоторых своих блогах я весьма успешно использую эту конструкцию, поэтому решил поделиться с вашим хорошим советом. Итак, произвольные поля вы можете найти в админке WordPress в одном из блоков под текстовым редактором для создания новых записей или страниц. Выглядит он примерно следующим образом:
Здесь слева располагается имя поля, а справа его значение. В качестве имени вы можете выбрать несколько вариантов по умолчанию, у меня там было title, description, keywords. Кстати после заполнения значений плагина All in One Seo Pack для увеличение трафика с поисковиков все значения (заголовок, описание и ключевые слова) копируются в эти произвольные поля. То ли они просто дублируются, то ли можно обходиться без вышеупомянутого плагина, хотя, конечно, тот выполняет еще ряд полезных функций.
Так вот, в WordPress custom fields можно также добавлять свои поля. Для этого кликаем по ссылке «Добавить новое», вводим имя (ключ) — используем для этого только английские символы, а справа указываем значение поля, после чего нажимаем на кнопку «Добавить произвольное поле». Например, введем в поле значения некоторый текст по типу «hello world» и зададим ему имя mytext.
Следующим шагом является вывод произвольного поля custom fields в нашем WordPress шаблоне. Для этого используем функцию get_post_meta($post_id, $key, $single). Переменные здесь обозначают:
- post_id — ID поста, из которого берутся произвольные поля. Чаще всего использует значение текущей статьи, поэтому параметр равен $post->ID.
- key — имя произвольного поля.
- single — установлен в true, если требуется вывести единичный результат в виде строки. Значение false используется для отображения всего массива данных с произвольными полями. Чаще всего (в том числе и у нас в примере) используется true.
То есть заходим в шаблон WordPress блога, например, в файл единичного отображения поста single.php. Там после отображения текста статьи функцией the_content добавляем нужную строку для вывода только что созданного custom fields.
<div class="post">
<h1><?php the_title(); ?></h1>
<?php the_content('') ?>
<?php echo (get_post_meta($post->ID, 'mytext', true)); ?>
</div>
Функция echo выводит текст в php. После этого сохраняем шаблон и проверяем как работает наше произвольное поле — заходите на страницу и пост, где вы это поле добавили, ведь оно будет отображаться только там. Точно также для других статей потом придется заходить в текстовый редактор, но теперь уже не добавлять новое поле, а выбирать его из списка по имени.
Для чего же можно использовать произвольные поля (custom fields) в WordPress. Я могу назвать, по крайней мере, три разных варианта:
1. Вывод различного рода текстов для статей — автор, источник статьи, редакторы, используемая литература ну и любой другой текст, что теоретически может быть указан для поста. Зачем выводить текст, если можно добавить его в саму статью? — спросите вы. Все очень просто, с помощью произвольного поля вы сможете вывести его в любом месте шаблона, задав для него другое оформление. Иногда такие ситуации возникают.
2. Спонсорские ссылки и постовые. В последнее время все, кто заказывают постовые, хотят чтобы они транслировались на главную страницу блога, а у меня есть проекты, где там выводится только часть поста со ссылкой «Читать далее». В таком случае вы добавляете html код ссылки в custom fields.
После чего выводите его не только на странице с отдельным отображением поста, а еще и на главной. Для этого используется та же самая функция get_post_meta.
3. Последний вариант — это вывод картинки для поста. Иногда бывают ситуации, когда хочется сделать в шаблоне все красиво и аккуратно, чтобы для каждой статьи выводились картинки одинаковой ширины и высоты. Либо отображать рисунок, которого нет в тексте записи. Для этого также подойдут произвольные поля (custom fields) в WordPress. Для этого создаем поле с названием, например, mythumb, где в качестве значение указываем название изображения (его предварительно заливаем на фтп), а в шаблон добавляем код по типу:
<div class="entry">
<?php $mythumb = get_post_meta($post->ID,'mythumb', true); ?>
<img src="https://mysite.com/wp-content/uploads/ <? echo strtolower($mythumb); ?>.jpg" width="100" alt="" />
<?php the_excerpt(); ?>
</div>
Здесь, кстати, используется немного другой принцип, когда значение произвольного поля считывается сначала в переменную $mythumb, а затем уже подставляется в нужное место — можно делать и так, и так, разницы нет никакой.
Вот, в принципе, и все. На последок могу подсказать одну полезную статью h++p://www.sonika.ru/blog/wordpress/custom-fields-wordpress.htm о произвольных полях (custom fields) в WordPress, где приведены еще примеры использования этой функции. Если будут какие-то вопросы, пишите в комментариях.
h++p://tods-blog.com.ua/wordpress/custom-fields/
Доброе время суток!Много прочитал про произвольные поля, но найти такой вкладки не смог. Может эта вкладка как-то включается? Нет её нигде. Включаю «редактировать страницу», прокручиваю вниз, как везде говорится, но ничего не нахожу.
Весьма странно… Сейчас глянул на старых версиях движка — они есть, но как и большинство элементов скрыты. Для того чтобы сделать эти поля доступными достаточно лишь нажать «+» справа от названия.
Справа от названия чего?
Справа от названия скрытых полей, в данном случае «произвольные поля».
А вообще давайте начнем с начала…, во-первых скажите у Вас какая версия WP? И во-вторых зайдите на страницу создания записи (НЕ страницы) и внимательно просмотрите все имеющиеся блоки (в том числе и скрытые «+»)…
P.S.: На картинках в этом посте показаны элементы новой админки, на старых версиях WP админка существенно отличается.
Кто бы подсказал: где посмотреть, какая у меня версия. Мой адрес: telephon.wordpress.com
Есть раздел «редактировать запись». Там нет ни +-сов, ни названия «произвольные поля». Такого названия я вообще нигде найти не могу. Может я вообще в другой программе?
Спасибо как раз то что я искал )))
Здравствуйте, а как custom fields можно включить в поиск. К примеру есть много рубрик и много городов, для городов есть custom field — city, а значение соответственно город. Так как вывести искомое в определенном городе? Т.е. форма для поиска — [что ищем] [выберете рубрику][выберете город]. Поиск по рубрикам работает, хотелось бы добавить поиск и по городам
saffian, с этим вопросом Вам лучше на WordPress форум обратиться…
Поставил wordpress 3.1 — там нет произвольных полей.
Тоже в недоумении искал эти поля, оказалось все просто, на любой странице, будь то page or post
вверху экрана, справа, есть кнопка SCREEN OPTION
там нужно поставить галочки, и все появится.
Спасибо black2hole, твой комментарий мне был полезней, чем вся статья. Спасибо большое!
black2hole, спасибо огромное,если бы не Вы, долго бы я еще лазила в поисках «произвольного поля».
Спасибо black2hole
Вам не кажется что лучше в коде указать просто нежели чем прибавлять и папку uploads? Ведь файлы в папке uploads у многих отсортированы по месяцам и годам, что будете делать в таком случае? Править шаблон каждый раз? =)
Если оставить просто переменную $mythumb то будет достаточно скопировать ссылку на изображение при загрузке его на ftp стандартным загрузчиком wp и вставить ссылку в custom field
У меня в админке в верхней части экрана есть кнопка «настройка экрана». Заходите в нее и включаете галочкой произвольные поля. И все появится.
Спасибо огромное black2hole.
Все ночь читала статьи и искала эти произвольные поля, чтобы включить картинки в теме. И только ты объяснил, как включить эти поля.