Поддержка Проблемы и решения Помогите, пожалуйста, с картой сайта в 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)
  • Так, с скрытием из списка определённой категории я разобрался, надо было просто это:
    $categories = get_categories( $args );

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

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

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

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

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

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

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

    • Ответ изменён 4 года, 8 месяцев назад пользователем O.

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

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

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

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

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

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