Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверьте пожалуйста, валидность и чистоту кода

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Aligatro
Отправлено: 20 Января, 2014 - 18:00:30
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Приятного времени суток, дамы и господа -) Я тут недавненько, из подручных инструментов склеил плагин адаптивного меню для wp, но как мне кажется, сделал я это ужасно криво (хоть все и работает). Если не затруднит, пробегите глазами функцию и скажите пожалуйста где ошибки =)

PHP:
скопировать код в буфер обмена
  1. function wpresponmenu() {
  2.  
  3. $menu .= print ("<ul id='navigation' class='slimmenu'>");
  4. $menu .= print ("<form method='get' id='searcherform' action='/'>");
  5. $menu .= print ("<input type='text' name='s' id='s' class='findText' />");
  6. $menu .= print ("</form>");
  7. $menu .= wp_nav_menu( array('theme_location' => 'responmenu','menu_class' => '', 'container' => 'false', 'items_wrap' => '%3$s', 'fallback_cb' => 'false',      'depth' => 3 ));
  8. $menu .= print ("</ul>");
  9. $menu .= print ("<div id='srch'> <form method='get' id='mobil_search' action=" . esc_url( home_url( '/' ) ) . ">");
  10. $menu .= print ("<input type='text' name='s' id='search' class='mobil_search_text' placeholder='Искать на сайте&hellip;' />");
  11. $menu .= print ("<input name='submit' type='submit' id='submit'  value='Поиск' />");
  12. $menu .= print ("</form></div>");
  13.  
  14. }


Меня больше всего волнует частый вызов print и вообще насколько я понял (читая статейки) print лучше всего вообще не использовать, а вместо него юзать эхо. Хотя в одной из статей говорилось обратное и парень ратовал за использование print взамен echo =) Буду очень признателен за помощь -)
 
 Top
DelphinPRO
Отправлено: 20 Января, 2014 - 18:32:50
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




нуууу... хотя бы так
PHP:
скопировать код в буфер обмена
  1. function wpresponmenu()
  2. {
  3.     $menu = "
  4.        <ul id='navigation' class='slimmenu'>
  5.            <form method='get' id='searcherform' action='/'>
  6.                <input type='text' name='s' id='s' class='findText' />
  7.            </form>";
  8.     $menu .= wp_nav_menu( array(
  9.                 'theme_location' => 'responmenu',
  10.                 'menu_class' => '',
  11.                 'container' => 'false',
  12.                 'items_wrap' => '%3$s',
  13.                 'fallback_cb' => 'false',
  14.                 'depth' => 3 ));
  15.     $menu .= "
  16.        </ul>
  17.        <div id='srch'><form method='get' id='mobil_search' action=" . esc_url( home_url( '/' ) ) . ">
  18.            <input type='text' name='s' id='search' class='mobil_search_text' placeholder='Искать на сайте&hellip;' />
  19.            <input name='submit' type='submit' id='submit'  value='Поиск' />
  20.        </form></div>";
  21.     return $menu;
  22. }

(Отредактировано автором: 20 Января, 2014 - 18:36:12)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Aligatro
Отправлено: 20 Января, 2014 - 19:51:24
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




DelphinPRO Так я пытался сделать с самого начала (чуть-чуть по другому разбил переменную, но принцип тот же) но такая версия (почему-то) не валидна. Если не записать print, функция будет отображать лишь wp_nav_menu (вызывает меню на wp), без выведения сопутствующей разметки, чем это вызвано не знаю =(

P.s так как я еще профан, вполне возможно я неправильно вызываю саму функцию (хотя wp_nav_menu отображается в любом из приведенных вариантов). Вот варианты: <?php wpresponmenu(); ?> <?php wpresponmenu($menu); ?> <?php echo/print wpresponmenu(); ?> <?php echo/print wpresponmenu($menu); ?>
 
 Top
DelphinPRO
Отправлено: 21 Января, 2014 - 06:22:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




блин, гребаный вордпресс. Забыл, что он пишет в выходной поток, э не возвращает результаты


CODE (htmlphp):
скопировать код в буфер обмена
  1. <? function wpresponmenu() { ?>
  2.        <ul id='navigation' class='slimmenu'>
  3.            <form method='get' id='searcherform' action='/'>
  4.                <input type='text' name='s' id='s' class='findText' />
  5.            </form>
  6.     <? wp_nav_menu( array(
  7.                'theme_location' => 'responmenu',
  8.                'menu_class' => '',
  9.                'container' => 'false',
  10.                'items_wrap' => '%3$s',
  11.                'fallback_cb' => 'false',
  12.                'depth' => 3 )); ?>
  13.        </ul>
  14.        <div id='srch'><form method='get' id='mobil_search' action=" . esc_url( home_url( '/' ) ) . ">
  15.            <input type='text' name='s' id='search' class='mobil_search_text' placeholder='Искать на сайте&hellip;' />
  16.            <input name='submit' type='submit' id='submit'  value='Поиск' />
  17.        </form></div>
  18. <? } ?>


т.е. Если функция должна вернуть результат своего выполнения, то нужно собирать вывод в переменную. В противном случае просто выводить данные.

Если не ошибаюсь, то в вордпрессе у всех функций вывода есть аналоги, возвращающие значения. Тогда можно использовать мой первый вариант, заменив в нем wp_nav_menu на что-то вроде get_wp_nav_menu (не помню точно).
и использовать так

В этом последнем варианте нужно просто вызвать функцию для вывода меню

(Добавление)
PS вот за что не люблю вордпресс, так это за разметку в функциях...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB