WordPress wp_list_pages - изменить дочерние родительские элементы из URL в #anchor ссылки - PullRequest
2 голосов
/ 09 октября 2019

Я настраиваю боковое навигационное меню, используя wp_list_pages, и я хотел бы преобразовать дочерние ссылки из URL-адресов в якорные ссылки, т.е. #link, а не текущую https://example.com/link, генерируемую wp_list_pages.

Я пытался использовать следующий код:

<?php
    $my_pages = wp_list_pages('echo=0&title_li=&child_of=5&depth=1');

    $pieces = explode('"', $my_pages);
    $i = 5;

    $j = 3;
    $limit = count($pieces);

    for (;$i<$limit;) {
        $tmp1 = '#'.$pieces[$j];

        $pieces[$i] = $tmp1;
        $i = $i+6;

        $j = $j+6;
    }
    $tmp2 = implode('"',$pieces);

    echo $tmp2;
?>

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

Это то, что у меня сейчас есть:

<div class="hero-container">

          <?php
          global $children;
          global $post;
          if ( $post->post_parent ) {
            $children = wp_list_pages( array(
              'title_li' => '',
              'child_of' => $post->post_parent,
              'echo'     => 0
            ) );
             } else {
            $children = wp_list_pages( array(
              'title_li' => '',
              'child_of' => $post->ID,
              'echo'     => 0
              ) );
            }
            if ( $children ) : ?>

          <?php echo '<div class="hero-side-menu">', '<h1>', get_the_title(), '</h1>', '<ul>', $children, '</ul>', '</div>' ?>

         <?php endif; ?>
  </div>

Буду очень признателен за любые предложения, так как я пытался разобраться в этом в течение нескольких дней и ничего не получил ... Также был бы признателен за объяснение, как я пытаюсь узнать, где я ошибся!

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

Пояснение: У меня есть страница с детскими страницами, которые я называю родителями, однако, они действительно дети. Я хотел бы сохранить URL-адреса для дочерних страниц, а затем сделать детей из дочерних страниц #links.

1 Ответ

0 голосов
/ 10 октября 2019

Это немного зависит от того, каким должен быть текст привязки. Будь то удостоверение личности, заголовок и т. Д. Но вы можете изменить это по своему усмотрению.

Вы можете вместо этого попробовать get_pages (), так что у вас есть немного больше контроля над выводом. Примерно так:

<div class="hero-container">

  <?php        
  global $post;

  $current_page_title = $post->post_title; // current page title

  $child_pages = 
      get_pages(
        array(
         'child_of' => $post->ID       
        ),
      );

  if ($child_pages) : ?>

    <div class="hero-side-menu">
      <h1><?php echo $current_page_title; ?></h1>

      <ul>

       <?php foreach ($child_pages as $page) : ?>

          <li><a href="<?php echo '#' . $page->post_title; ?>"><?php echo $page->post_title; ?></a></li>

       <?php endforeach; ?>

      </ul>

    </div>

  <?php endif; ?>

</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...