Модератор
Юрій
(@yube)
Попробуйте вместо $post->ID использовать get_the_ID().
и что со страницами делать? Там нет же ID.
Чего это вдруг? Посты от стат.страниц, по большому счету, отличаются только типом записи.
Хм, ничего не появилось на странице.
<?php echo (get_post_meta(get_the_ID(), 'mytext', true)); ?>
вот что писал в шаблоне.
Потом когда добавляю страницу пишу в пп
ИМЯ — «mytext»
ЗНАЧЕНИЕ — «http://www.google.ru/»
Просматриваю страницу, пусто. И когда код этой страницы смотрю в хроме, то в месте где должно все быть вообще пусто, никакого кода.
И когда код этой страницы смотрю в хроме, то в месте где должно все быть вообще пусто, никакого кода.
Видимо, не тот сайдбар подключаете.
Или смотрите тот пост/страницу, в котором нет этого метаполя.
Для «попыток» подключить произвольное поле я сделал отдельный шаблон.
Так как сайт уже работает и не хочется работающие шаблоны трогать.
Тему всю делал я. Может надо что то в functions.php прописывать для работы произвольного поля?
Для «попыток» подключить произвольное поле я сделал отдельный шаблон.
Ну. А сайдбар-то не забыли подключить? Я, только что, на дефолтной (TwentyTwelve) теме, закинул ваши строчки (даже не изменял их) и у меня все работает:
http://trueimages.ru/img/52/1a/6a0120a5d5216b7d97e7dd766fc.png
http://trueimages.ru/img/9b/c9/d56a3d7b0d82557b1a83653d317.png
Увидел ваш код и вот
<?php echo (get_post_meta(get_the_ID(), 'mytext', true)); ?>
— должен быть внутри <?php if ( is_active_sidebar ...
это обязательное условие ? Или можно произвольно использовать где угодно?
внутри <?php if ( is_active_sidebar … это обязательное условие ?
Это содержимое сайдбара. Говорит о том, что если нет виджетов в нем, то не показывать. Обведенное красным это добавлено мной, все остальное — это «родное» темы TwentyTwelve.
И так, <?php echo (get_post_meta(get_the_ID(), 'mytext', true)); ?>
работает если я его кидаю в цикл have_posts
. А без него не работает.
А там куда я хочу его прилепить ничего нет(нет циклов).
Насколько я понял что одно имя(ключ) только для одной ссылки. Это если мне надо 3-5 ссылок выложить, то надо создавать заранее много get_post_meta
с разными именами? И я писал выше что ссылки не должны быть видны, если сделать так <li><a href="<?php echo (get_post_meta(get_the_ID(), 'mytext', true)); ?>">ТЕКСТ</a></li>
, то ссылки не видны и все бы ничего, но я «обречен» на слово «ТЕКСТ» пока не полезу редактировать шаблон?
А там куда я хочу его прилепить ничего нет(нет циклов).
Если честно, то мне совсем не интересно, куда вы его «лепите» 🙂
Шаблон одиночной записи (ака пост [single.php], то как сделал я):
+---------------------------+
| header.php |
+--------------+------------+
| здесь цикл |sidebar.php |
| ака Loop | наш код |
| | |
+--------------+------------+
| footer.php |
+---------------------------+
Если одиночная запись выводится, то можно получить ее ID, при этом не имеет значения где находится ваш код (хоть в header, хоть в footer, хоть в sidebar) для получении метаполя, принадлежащей этой записи.
то надо создавать заранее много get_post_meta с разными именами?
Нет, не использовать булев флаг:
get_post_meta(get_the_ID(), 'mytext');
тогда вернется массив со всеми значениями этого метаполя (mytext). Чтобы вывести после этой операции нужные значения используйте функции для работы с массивами http://www.php.net/manual/ru/ref.array.php
Начну с начала.
Шаблон делал я с нуля.
get_post_meta
работает у меня только в цикле have_posts
. Вне его не выводится ничего, в месте где должна быть ссылка из значения, пусто. sidebar.php — у меня нет вообще. Сайдбар в одном файле с контентом.
Вот по другому попробую объяснить что хочу я.
<li><a href="сюда вставить ссылку">сюда описание ссылки</a></li>
Эти 2 вставки надо делать с админки.
Вот по другому попробую объяснить что хочу я.
Мы давно поняли, что Вам надо. 🙂
Если Вы не можете воспользоваться данными ссылками-обяснениями и сочинить нужный код, тогда советую подобрать плагин для работы с произвольными полями. Их масса и они разные по функционалу. Я точно видел несколько, где можно было добавлять произвольное кол-во полей и даже мета-боксов (аяксом).
Все на что хватило моего мозга, это сделать такую «карусель».
<li><a href="<?php echo (get_post_meta($post->ID, 'link1', true)); ?>"><?php echo (get_post_meta($post->ID, 'name1', true)); ?></a></li>
— Но не удобно же получается)