X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Вывод дополнительных полей через условие (Wordpress)
LEXENUS
LEXENUS
Topic Starter сообщение 14.6.2013, 10:25; Ответить: LEXENUS
Сообщение #1


Старожил
******

Группа: Active User
Сообщений: 1230
Регистрация: 24.8.2007
Из: SPb
Поблагодарили: 429 раз
Репутация:   83  


Добрый вечер.
Существует проблема. Нужно черезе дополнительные поля выводить меню к конкретным страницам, но на остальных страницах в том же месте нужно вывести дефолтное меню.

Подскажите как правильно написать условие вывода. (в программирование полный 0).


<?php if(здесь должно быть условие что дополнительное поле menu существует и не пустое)
{
<center><?php echo (get_post_meta($post->ID, 'menu', true));?></center>
}
else
{
echo ' Я робот!';
}
?>


Подскажите как поправить код и будет ли он работать в таком виде.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 14.6.2013, 10:29; Ответить: Alex_RD
Сообщение #2


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


Развернуть/Свернуть
<?php if(is_page($id))
{
<center><?php echo (get_post_meta($post->ID, 'menu', true));?></center>
}
else
{
//вывод дефолтного меню
}
?>

где $id - id нужной страницы (именно страницы, не записи, не рубрики)

update:
Гм,
поправка так правильней будет:

<?php $additional_menu = get_post_meta($post->ID, 'menu', true);?>
<?php if($additional_menu)
{
<center><?php echo $additional_menu;?></center>
}
else
{
//вывод дефолтного меню
}
?>


Сообщение отредактировал Alex_RD - 14.6.2013, 10:36


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
NoMax
NoMax
сообщение 14.6.2013, 10:43; Ответить: NoMax
Сообщение #3


Участник
***

Группа: User
Сообщений: 190
Регистрация: 13.7.2010
Поблагодарили: 68 раз
Репутация:   8  


Тогда уж так правильно будет:

<?
if (get_post_meta($post->ID, 'menu', true)) {
echo '<center>'.get_post_meta($post->ID, 'menu', true).'</center>';
}
else
{
//вывод дефолтного меню
}
?>


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LEXENUS
LEXENUS
Topic Starter сообщение 14.6.2013, 10:48; Ответить: LEXENUS
Сообщение #4


Старожил
******

Группа: Active User
Сообщений: 1230
Регистрация: 24.8.2007
Из: SPb
Поблагодарили: 429 раз
Репутация:   83  


После вставки кода перестаёт отображаться главная.

И вопрос какой синтаксис верен для wp. Представленый выше или такой.
<?php $additional_menu = get_post_meta($post->ID, 'menu', true);?>
<?php if($additional_menu)?>
<center><?php echo $additional_menu;?></center>

<?php endwhile; else: ?>

дефолтное меню

<?php endif; ?>


Но в любом случае и первый и второй вариант блокируют вывод главной страницы.

NoMax, благодарю помогло smile.gif Alex_RD, также спасибо.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Alex_RD
Alex_RD
сообщение 14.6.2013, 10:55; Ответить: Alex_RD
Сообщение #5


Бывалый
****

Группа: User
Сообщений: 299
Регистрация: 25.11.2008
Поблагодарили: 131 раз
Репутация:   34  


NoMax,
Тогда уж так правильно будет:

Не знаю почему, не люблю wp-шные функции напрямую условия вставлять

<?
if (get_post_meta($post->ID, 'menu', true)) {
echo '<center>'.get_post_meta($post->ID, 'menu', true).'</center>';
}
else
{
//вывод дефолтного меню
}
?>

получается делаем 2 запроса вместо одного. Хотя вы правы, не обратил внимания, что html теги внутри php.

LEXENUS,

И вопрос какой синтаксис верен для wp. Представленый выше или такой.


оба, лично для меня условие{цикл} удобнее на маленьких (по строкам) выводах и в отдельно выносимых в functions.php, а if(): endif; на длинных (там где идет цикл вывода контента, с большим количеством .html тегов)

Сообщение отредактировал Alex_RD - 14.6.2013, 10:56


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LEXENUS
LEXENUS
Topic Starter сообщение 12.7.2013, 18:52; Ответить: LEXENUS
Сообщение #6


Старожил
******

Группа: Active User
Сообщений: 1230
Регистрация: 24.8.2007
Из: SPb
Поблагодарили: 429 раз
Репутация:   83  


Добрый вечер. Не хотелось поднимать новую тему по данному вопросу, решил апнуть старую.

Та же ситуация, но нужно производить проверку url страницы на содержание определённого адрса.

<? if (проверка на содержание в адресе последовательно идущих символов /en/) {
echo '<center>'.get_post_meta($post->ID, 'menu', true).'</center>';
}
else
{
echo '<center>'.get_post_meta($post->ID, 'menu2', true).'</center>';
}
?>

То есть, если страница сайта англоязычная выводится дополнительное поле "menu", если нет "menu2".
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
andreykashops
andreykashops
сообщение 12.7.2013, 22:37; Ответить: andreykashops
Сообщение #7


WordPress is my Life..
******

Группа: Active User
Сообщений: 1427
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 633 раза
Репутация:   139  


LEXENUS, думаю ссылка Вам в помощь будет:
http://ixmaster.net/pokazat-blok-na-oprede...stranicax-sajta


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LEXENUS
LEXENUS
Topic Starter сообщение 13.7.2013, 2:20; Ответить: LEXENUS
Сообщение #8


Старожил
******

Группа: Active User
Сообщений: 1230
Регистрация: 24.8.2007
Из: SPb
Поблагодарили: 429 раз
Репутация:   83  


andreykashops, спасибо.
Но по работе функции сразу возник вопрос.

$url = strpos($_SERVER['REQUEST_URI'], "single")

Я так понимаю, что берётся текущий url страницы, сравнивается с параметром single и возвращает true или false . Single должен содержать именно полный url или часть адреса страницы.
То есть в данном случае мне нужно создать отдельную переменную и в условие сравнить значение переменной?

$add= strpos($_SERVER['REQUEST_URI'], "single");
<? if (add == true) { /// } ?>

Поправьте меня, если я в чём-то не прав.


Добавлено

Написал следующий код:

<?php
$curre = en];
$url = strpos($_SERVER['REQUEST_URI'], $curre);

if ($url === true)
{
echo '<center>'.get_post_meta($post->ID, 'menu', true).'</center>';
}
else
{
echo '<center>'.get_post_meta($post->ID, 'menuen', true).'</center>';
}
?>

К примеру у нас страница: name.ru/en/jejejej.html

'REQUEST_URI' передаёт jejejej.html
'SERVER_NAME' передаёт name.ru

как получить en? smile.gif

Проблема рещилась. 'REQUEST_URI' не передавал /en/ изза того что плагин эмулировал директорию.
А саму проблему решил путём использования переменной плагина. Всем спасибо.

Сообщение отредактировал LEXENUS - 12.7.2013, 23:54
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Услуги по CMS Wordpress, DLE, Joomla!. Правки, ремонт, настройка.
Редактирование и правки. Низкие цены.
143 contex1 65213 Сегодня, 9:07
автор: contex1
Горячая тема (нет новых ответов) ВНИМАНИЕ: Обмен/Ввод/Вывод - Paypal/WM/PM/WIRE/ePm/Paxum/BTC/Epese/Capitali/Visa/MC/eCoin/EXMO/нал
184 JenkinChange 77275 14.12.2017, 17:42
автор: gold15
Открытая тема (нет новых ответов) Адаптивная вёрстка и натяжка на Wordpress, DLE, Joomla и др. Создание мобильных версий.
Хороший код с оптимизацией по скорости. Сайты и лендинги "под ключ
15 Nell 1174 13.12.2017, 23:36
автор: Nell
Горячая тема (нет новых ответов) Вёрстка, натяжка на WordPress, Joomla, качественно, доступно
53 WhiteIce 23824 12.12.2017, 19:41
автор: WhiteIce
Горячая тема (нет новых ответов) [Cashbank.pro] Qiwi>btc. Вывод и обмен. Работаем с наличными! Подарок каждому 5$
75 Cashbank 15898 12.12.2017, 13:57
автор: Cashbank


 



RSS Текстовая версия Сейчас: 17.12.2017, 22:10
Дизайн