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
Сообщений: 1434
Регистрация: 21.7.2012
Из: Украины
Поблагодарили: 641 раз
Репутация:   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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Вы подписаны на эту тему Продажа новых готовых сайтов без домена на Wordpress
0 tbr82 83 Сегодня, 18:11
автор: tbr82
Горячая тема (нет новых ответов) [Cashbank.pro] Qiwi>btc. Вывод и обмен. Работаем с наличными! Подарок каждому 5$
118 Cashbank 24238 Вчера, 12:41
автор: Cashbank
Открытая тема (нет новых ответов) Как зайти через прокси в Webmoney?
7 metvekot 676 Вчера, 11:15
автор: Infacto
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПрошу помощи знатоков wordpress
12 SOROKVLAD29 1548 25.5.2018, 15:59
автор: mmkulikov
Открытая тема (нет новых ответов) Вывод на Сбербанк 6% | Работаю быстро
WMR/Яндекс > Сбербанк
15 rudnizki 4056 25.5.2018, 11:48
автор: rudnizki


 



RSS Текстовая версия Сейчас: 27.5.2018, 18:44
Дизайн