Создал вкладку в ЛК, добавил шорткод:
function test() { global $user_LK; $current_page = (get_query_var('paged')) ? get_query_var('paged') : 1; $params = array( 'posts_per_page' => 6, 'category_name' => 'test', 'paged' => $current_page, 'author' => $user_LK ); query_posts($params); $wp_query->is_archive = true; $wp_query->is_home = false; while(have_posts()): the_post(); ale_part('postpreviewlk' ); endwhile; } add_shortcode('test', 'test');
Во вкладке все работает нормально: выводит записи пользователя из определенной категории, но эти посты выводятся во всех вкладках, еще их содержание почему-то выводится под серой полосой, хотя я вывожу только заголовок, число комментов и дату.
Если перейти на другую вкладку, например, "Профиль", то содержимое профиля (настройки email, имени, пароля и тд) будет в центре, посты (которые выводятся через шорткод) сверху над полями профиля, а содержание этих же постов под серой линией.
Посты появляются в других вкладках только после того, как зайдешь в мою вкладку.
ale_part:
/** * Get template part * * @param string $slug * @param string $name */ function ale_part($slug, $name = null) { get_template_part('partials/' . $slug, $name); }
postpreviewlk:
<div class="wrap"> <div class="item"> <div class="post_name"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div> <div class="meta"> <div class="comments"><a href="<?php comments_link(); ?>"><?php comments_number(); ?></a></div> <div class="date"><?php echo get_the_date(); ?></div> </div> </div> </div>
Просто видно что это вы выдрали откуда-то. Найдите нормальное решение и нормальный шорткод.
Как писал в другой теме - есть уже такие плагины которые уже в шорткоде позволяют выводить нужные записи по категориям - просто передав в шорткод нужные атрибуты.. Возьмите готовое решение