• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Вёрстка шаблона, вывод ссылок в меню на основе таблицы

Rudoy1488

Гуру форума
Регистрация
29 Июл 2013
Сообщения
135
Реакции
65
Версия Wordpress - последняя
Плагинов нет
Тема - уникальная


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

2014-07-23 12_05_29-Промышленный альпинизм Санкт-Петербург.jpg
 
Можете продублировать здесь код таблицы с меню в шаблоне?
Код:
    <div class="menu1">
    <table width="240" cellpadding="4px" cellspacing="6px">
  <tr>
    <td>
<?php wp_nav_menu('menu=as1&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
 
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=as2&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=as3&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=as4&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=as5&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=as6&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=as7&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
</table>
<table width="260" cellpadding="4px" cellspacing="6px">
  <tr>
    <td><?php wp_nav_menu('menu=center1&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=center2&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=center3&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=center4&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=center5&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=center6&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=center7&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
</table>
<table width="260" cellpadding="4px" cellspacing="6px">
  <tr>
    <td><?php wp_nav_menu('menu=right1&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=right2&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=right3&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=right4&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=right5&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=right6&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
  <tr>
    <td><?php wp_nav_menu('menu=right7&menu_class=menu-left-container&items_wrap=%3$s'); ?></td>
   
  </tr>
</table>
    </div>
 
По сути каждый раз идет обращение к массиву wp_nav_menu.
Чем именно вы проверяли запросы к бд?

Вы создаете структуру меню в админке с именем 'menu1' и там у вас идет список того, что вы показали в примере вывода меню, если да, то можно использовать код намного проще:

PHP:
<?php
wp_nav_menu(array(

'menu'            => 'menu1',
'theme_location' => 'menu1',
'container_class' => 'menu-left-container',
'echo' => true,
'items_wrap' => '%3$s'
)
);
?>

<style>
.menu-left-container li {background: url('https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-ios7-arrow-right-16.png') no-repeat 0px 13px; padding: 0px 0px 0px 18px; text-align: left; width: 240px;}
</style>

результат:
fdVjQ.jpg
 
Последнее редактирование:
Чем именно вы проверяли запросы к бд?

Вот таким вот образом:

Код:
<?php if (is_user_logged_in()) { ?>
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
<?php } ?>


да мне именно в таблице надо меню выводить)
 
Код:
    $menu_name = 'custom_menu_slug';

    if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
    $menu = wp_get_nav_menu_object( $locations[ $menu_name ] );

    $menu_items = wp_get_nav_menu_items($menu->term_id);

    $menu_list = '<div id="menu-' . $menu_name . '"><table>';
    foreach ( (array) $menu_items as $key => $menu_item ) {
        $title = $menu_item->title;
        $url = $menu_item->url;
        $menu_list .= '<tr><td><a href="' . $url . '">' . $title . '</a></td></tr>';
    }
    $menu_list = '</table></div>';
    } else {
    $menu_list = '<ul><li>Menu "' . $menu_name . '" not defined.</li></ul>';
    }

В итоге должно получится три таких куска кода. Можно конечно упростить здесь все, но у меня к сожалению нету на чем протестировать.
 
Назад
Сверху