Превращение wp_nav_menu в цикл foreach - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть настроенная навигация wp_nav_menu, которая выводит весь список элементов подстраницы только из одной строки эха ...

<?php

$menuParameters = array(
    'theme_location'    =>'primary',
    'menu_id'           => 'main-menu',
    'before'            => '<div class="service-boxes-item"><h2>',
    'after'             => '</h2></div>',
    'container'         => false,
    'echo'              => false,
    'depth'             => 0,
    'walker'=>new Selective_Walker()
);

echo strip_tags(wp_nav_menu( $menuParameters ), '<a><div><h2>' );
?>

Я сделал это для того, чтобы вырезать ul и li теги. В настоящее время он выводит это:

<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>
<div class="service-boxes-item"><h2><a href="#">page title</a></h2></div>

Что идеально и именно то, что я хочу.

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

Проблема теперь возникает, когда мне нужно добавьте другие элементы к каждому из пунктов сервис-боксов.

Мне удалось добавить теги и классы, такие как теги H1 и Div ... но теперь я хотел бы добавить кнопку под каждым заголовком страницы рядом со всеми элементами-сервисами.

Я считаю, что лучшим вариантом для этого было бы добавить его внутрь al oop, поэтому вместо добавления этих элементов в строку эха я могу добавить их правильно, предоставляя мне больше гибкости для каждого элемента.

Ранее я делал это с помощью циклов страниц и записей, но я не могу понять, как это сделать с помощью wp_nav_menu.

Я могу думать только так:

<?php 
$menuParameters = array(
    'theme_location'    =>'primary',
    'menu_id'           => 'main-menu',
    'container'         => false,
    'echo'              => false,
    'depth'             => 0,
    'walker'=>new Selective_Walker()
);
$pages = wp_nav_menu($menuParameters);  ?>

<?php foreach( $pages as $menuParameters ) { ?>

    <div class="service-boxes-item">
        <h2>
            <a href="#">page title</a>
        </h2>
    </div>

    <button class="button button-service" onclick="window.location.href = '<?php echo  get_permalink($page->ID); ?>';">More Info</button>

<?php } ?>

Но, как вы можете видеть, это, очевидно, не сработает, потому что код очень неправильный, и это имеет все виды проблем. Я смешиваю циклы страницы / поста с выходом nav.

Я попал в настоящий беспорядок, так как не знаю, как подходить к другим вещам, таким как постоянные ссылки, с навигационными меню, так как они, кажется, автоматически встроены и, вероятно, недоступны из foreach l oop, используя get_permalink();.

По сути, мне просто нужно иметь возможность добавлять другие элементы к каждому элементу ... Разве я не могу добавить кнопку (с постоянной ссылкой et c.) Внутри строки эха? Любая помощь или совет очень ценятся !!

Если вам интересно, в настоящее время это выглядит так:

enter image description here

и я пытаюсь заставить каждый элемент выглядеть так:

enter image description here

1 Ответ

0 голосов
/ 28 апреля 2020

В твоем foreach l oop попробуй

get_permalink($menuParameters->ID)
...