Поддержка Проблемы и решения Помогите, пожалуйста, с картой сайта в WordPress, что реализуется кодом.

  • Доброго времени суток, уважаемые специалисты.
    Я решил сделать HTML карту сайта, попробовал плагины, но всё что-то не то. Тогда я решил сделать её без плагина, чтобы можно было тонко подстроить дизайн.
    На просторах сети подчеркнул весьма неплохой скрипт:

    <?php
    $exclude_pages = '12, 14';
    $exclude_posts = array();
    ?>
    
    <h2>Публикации</h2>
    
    <?php
    
    $args = array();
    
    $categories = get_categories( $args );
    
    foreach ($categories as $category) {
    echo "<ul>";
    echo "<li><strong>Категория:</strong> <a href=\"".get_category_link($category->term_id)."\" target=\"_blank\" >".$category->name."</a>";
    $posts = get_posts(array('category' => $category->term_id, 'posts_per_page' => '150'));
    echo "<ul>";
    foreach ($posts as $post) {
    if(!in_array($post->ID, $exclude_posts)){
    echo "<li><a href=\"".get_permalink($post->ID)."\" target=\"_blank\" >".$post->post_title."</a></li>";
    }
    }
    echo "</ul>";
    echo "</li>";
    echo "</ul>";
    }
    ?>
    
    <?php $args = array('exclude_tree' => $exclude_pages, 'title_li' => ''); ?>
    
    <h2>Страницы</h2>
    
    <ul>
    <?php wp_list_pages( $args ); ?>
    </ul>

    Внедрил, дизайн подстроил как необходимо, благо в HTML более-менее соображаю 🙂 Но вот в нём очень не хватает возможности скрытия определённой рубрики(ик). Если пост скрыть можно, то рубрику нет. Как добавить в скрипт такую возможность?
    ———
    И ещё возникла проблема, которую, как говорится, не ждали. Я один всё делаю, помочь мне некому со статьями и картинками, потому я пишу статьи и скрываю некоторые из них с главной и присвоенной ей категории (поисковик, естественно, видит её), потому что не сделал коллаж картинку, что представляет статью. Как появляется вдохновение и свободное время я рисую её и убираю скрытие.
    Эти статьи я скрываю этим кодом:

    function exclude_post($query) {
    if ($query->is_category || ($query->is_home || ($query->is_feed)))
    {$query->set('post__not_in', array(3, 5, 7) );} // id записи (поста)
    return $query; }
    add_filter('pre_get_posts','exclude_post');

    И они не отображаются и в карте сайта, хотя они закончены, просто нет картинки. Можно ли выводить все статьи в карте сайта, включая скрытые приведённым выше кодом?

    Очень надеюсь на вашу посильную помощь, уважаемые специалисты. С созданием сайтов я познакомился недавно, осваиваю писательство, html с горем пополам освоил. Но вот модификация php кода, это совсем другой уровень 🙁

Просмотр 5 ответов — с 16 по 20 (всего 20)
  • Автор rediioo

    (@rediioo)

    Так, с скрытием из списка определённой категории я разобрался, надо было просто это:
    $categories = get_categories( $args );

    заменить на это:
    $categories = get_categories( 'exclude=123' );

    А вот со скрытыми постами из-за фильтра
    add_filter('pre_get_posts','exclude_post');

    я никак не могу справиться. Может есть какой то альтернативный код скрытия постов с главной, из категории и РСС, но при этом не затрагивающий карту сайта?

    Очень надеюсь на ответ.

    O

    (@perdyllo)

    Может есть какой то альтернативный код скрытия постов с главной, из категории и РСС, но при этом не затрагивающий карту сайта?

    Если уж вы так зациклились на карте сайта, которая в настоящее время как вам уже пытались объяснить, совершенно неуместна, тем более при разумно организованной навигации по сайту, вам поможет этот плагин:

    https://ru.wordpress.org/plugins/ultimate-category-excluder/

    • Ответ изменён 5 лет назад пользователем O.
    Автор rediioo

    (@rediioo)

    Perdyllo
    Спасибо за ответ. Но меню у меня есть, хлебные крошки тоже. И карта сайта есть, но там нет некоторых постов, что скрыты приведённым выше кодом. Осталось решить этот небольшой нюанс и будет совсем хорошо.

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

    O

    (@perdyllo)

    но там нет некоторых постов, что скрыты приведённым выше кодом.

    Так удалите этот «приведенный выше код» чтобы открыть посты в карте. А для скрытия постов из определенных категорий с других страниц и RSS воспользуйтесь указанным мною плагином.

    Автор rediioo

    (@rediioo)

    Perdyllo
    Я подробно ознакомился с плагином. Как я понял, он скрывает все посты из скрытой категории. В моём же случае скрывать надо не категории и все посты в них, а выборочно только посты, которые ,как правило, находятся в разных категориях, иногда даже нескольких одновременно.

Просмотр 5 ответов — с 16 по 20 (всего 20)
  • Тема «Помогите, пожалуйста, с картой сайта в WordPress, что реализуется кодом.» закрыта для новых ответов.