Дополнительное поле Wordpress

tk1308
На сайте с 27.11.2010
Offline
37
1320

Есть необходимость выводить снизу каждого поста ссылку (скачать :2cents:)

A.link1 {    text-decoration: none; text-align:center;   border-bottom: 1px dashed #000080; } A.link1:hover {    color: #f00000;   }

С этим css. Для удобства нужно вывести доп.поле в меню создания поста. Кто что может подсказать? Интересны мнения от голых php до популярных плагинов.

Sentoro
На сайте с 18.03.2007
Offline
149
#1

Устанавливаете плагин Custom Field Template, называете произвольное поле например MyField, типа текст.

И в single.php:


<?php the_content();?>

<?php $my_meta = get_post_custom_values( 'MyField', $ID );

if ( $my_meta)
{

foreach ( $my_meta as $val_key => $val_val ) echo '<div class="Fields">'.$val_val.'</div>';
}

?>

Где MyField - имя произвольного поля, где у вас лежит ссылка "скачать"

если стиль ссылки един на всех, вынесите его в файл стилей css темы и все.

Теперь в цсс ваша ссылка будет в блоке Fields, для него и указывайте стили.

p.s. только зачем мудрить ссылку "скачать" произвольным полем, если ее и так можно вставить?

Продается СДЛ на тему инвестирования (http://www.telderi.ru/ru/viewsite/903457)
Hixon10
На сайте с 21.08.2010
Offline
125
#2
tk1308:
Есть необходимость выводить снизу каждого поста ссылку (скачать :2cents:)
A.link1 {    text-decoration: none; text-align:center;   border-bottom: 1px dashed #000080; } A.link1:hover {    color: #f00000;   }


С этим css. Для удобства нужно вывести доп.поле в меню создания поста. Кто что может подсказать? Интересны мнения от голых php до популярных плагинов.

А я бы сделал проще: ссылка СКАЧАТЬ, я думаю, идёт в последнем абзаце. Так, быть может, просто с помощью функции к последнему абзацу добавлять пользовательский класс, т.е. будет что-то типа такого:


<div class="my_class"><p>Скачать фильм <a href="http://site.com/#">скачать</a></p></div>

Вот код, его положить в functions.php, он добавит класс denis_plugin


function denis_filter ($content="") {
$musor = $content;
$pos = strrpos($musor, '<p>');
$result = "";
$d = 0;
for ($i=0; $i < $pos; $i++) {
$result = $result.$musor[$d];
$d = $d + 1;
}

$result = $result. '<';
$result = $result. 'd';
$result = $result. 'i';
$result = $result. 'v';
$result = $result. ' ';
$result = $result. 'c';
$result = $result. 'l';
$result = $result. 'a';
$result = $result. 's';
$result = $result. 's';
$result = $result. '=';
$result = $result. '"';
$result = $result. 'd';
$result = $result. 'e';
$result = $result. 'n';
$result = $result. 'i';
$result = $result. 's';
$result = $result. '_';
$result = $result. 'p';
$result = $result. 'l';
$result = $result. 'u';
$result = $result. 'g';
$result = $result. 'i';
$result = $result. 'n';
$result = $result. '"';
$result = $result. '>';


for ($i=$pos+26; $i < strlen($content)+26; $i++) {
$result[$i] = $musor[$d];
$d = $d + 1;
}

$result = $result. '<';
$result = $result. '/';
$result = $result. 'd';
$result = $result. 'i';
$result = $result. 'v';
$result = $result. '>';
$content = $result;
return $content;
}

add_filter( 'the_content', 'denis_filter' );
Веду свой невзрачный блог (http://hixon.ru/).
tk1308
На сайте с 27.11.2010
Offline
37
#3
Hixon10:
А я бы сделал проще: ссылка СКАЧАТЬ, я думаю, идёт в последнем абзаце

Точно, спасибо)

Sentoro:
p.s. только зачем мудрить ссылку "скачать" произвольным полем, если ее и так можно вставить?

Чтобы просто написать описание, и поставить ссылку в окошко) И нигде ничего не перекосится))

S1
На сайте с 13.03.2008
Offline
49
#4
Вот код, его положить в functions.php, он добавит класс denis_plugin

Это нужно положить сюда

To TC: Вариантов куча. Начиная от вставки ссылки в single.php(самый некошерный метод) заканчивая хуками add_filter, шорткодами.

Можно так:

add_filter('the_content', 'link_injection');
function link_injection($content) {
global $post;

if(!is_single() || empty(get_post_meta($post->ID, 'link', true)))
return;

$link = '<a class="link1" href="' . get_post_meta($post->ID, 'link', true) . '">скачать</a>';

return $content . $link;
}

Вставить в functions.php. Ссылку добавлять в произвольное поле link. Поле пусто - ссылки нет.

П.С. Или надо одну и ту же ссылку на все страницы? Тогда вариант №1. В single.php после <?php the_content() ?> вставить <a class="link1" href="">скачать</a>

Дизайн сайтов (UI/UX), логотипов, баннеров и прочего... (/ru/forum/770062)
tk1308
На сайте с 27.11.2010
Offline
37
#5

Нет, ссылки разные нужны, добавляемые редактором при создании новости в отдельную строку. Я думал, мож плагин какой есть :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий