WordPress: вставьте символ между двумя пунктами меню - PullRequest
0 голосов
/ 15 сентября 2018

Я работаю над своей собственной темой WordPress, и мне трудно разработать первое меню в шапке так, как я хочу.

Итак, в header.php я вставляю меню таким образом, чтобы ссылки не были окружены табличными тегами:

    <?php 
          $menuParameters = array(
              'container'         =>  false,
              'echo'              =>  false,
              'items_wrap'        =>  '%3$s',
              'depth'             =>  0,
          );
          $output = strip_tags(wp_nav_menu($menuParameters), '<a>');
          //This is my first try with regex, but i didnt manage to
          //only insert the character in between two links and not
          //one at the and as well.
          //$output = Preg_replace( "(\n)", "$0|\r\n", $output);
          echo $output;
    ?>

Итак, этот код дает мне меню, которое выглядит следующим образом:

    <a href="http://localhost/page-1/">Page 1</a>
    <a href="http://localhost/page-2/">Page 2</a>
    <a href="http://localhost/page-3/">Page 3</a>
    <a href="http://localhost/page-4/">Page 4</a>
    <a href="http://localhost/page-5/">Page 5</a>

Просто для понимания, вот что я хочу получить:

    <a href="http://localhost/page-1/">Page 1</a>
    |
    <a href="http://localhost/page-2/">Page 2</a>
    |
    <a href="http://localhost/page-3/">Page 3</a>
    |
    <a href="http://localhost/page-4/">Page 4</a>
    |
    <a href="http://localhost/page-5/">Page 5</a>

Спасибо за ваши ответы заранее!

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

wp_nav_menu() позволяет аргументам after и link_after добавлять текст после текста ссылки или разметки ссылки, чтобы вы могли обновить свои параметры:

$menuParameters = array(
          'container'         =>  false,
          'echo'              =>  false,
          'items_wrap'        =>  '%3$s',
          'depth'             =>  0,
          'after'             => "<span>|</span>"
);

https://developer.wordpress.org/reference/functions/wp_nav_menu/

РЕДАКТИРОВАТЬ: Если вы не хотите показывать разделитель после последней ссылки, вы можете использовать некоторые псевдоэлементы CSS:

.mymenu span:last-child{ display: none; }

https://jsfiddle.net/k593ezoL/1

0 голосов
/ 15 сентября 2018
<a href="http://localhost/page-1/">Page 1</a><a href="http://localhost/page-2/">Page 2</a><a href="http://localhost/page-3/">Page 3</a><a href="http://localhost/page-4/">Page 4</a><a href="http://localhost/page-5/">Page 5</a>
...