Utworzyłem w WordPressie niestandardowy typ treści z kategoriami. Użytkownicy mogą odblokowywać dostęp do pojedynczych wpisów indywidualnie za pomocą zebranych punktów (używam do tego wtyczki mycred).
Chciałbym wyświetlić w profilu użytkownika (BuddyPress) listę wszystkich postów pogrupowanych według kategorii oraz z oznaczeniem czy użytkownik odblokował dany wpis.
Z wyświetleniem listy wpisów z danej kategorii nie mam problemu, wygląda to następująco:
$xyz_args = array(
'post_type' => 'books',
'tax_query' => array(
array (
'taxonomy' => 'books_cat',
'field' => 'slug',
'terms' => 'xyz',
)
),
);
$xyz_query = new WP_Query( $xyz_args );
if ( $xyz_query->have_posts() ) {
echo 'Wpisy z kategorii XYZ:';
while ( $xyz_query->have_posts() ) {
$xyz_query->the_post();
echo '<a href="' . get_permalink() . '" title="'. get_the_title() . '""><img src="' . get_the_post_thumbnail_url() .'"></a>';
}
}
Do wyświetlenia wszystkich wpisów odblokowanych przez użytkownika służy specjalna funkcja która bierze z bazy ID wpisu, ID użytkownika i inne dane (nie bierze kategorii wpisu). Tak to wygląda jeśli chcę wywołać listę odblokowanych wpisów:
$user_id = bp_displayed_user_id( );
$purchases = mycred_get_users_purchased_content( $user_id, $number, $order, $ctype );
if ( ! empty( $purchases ) ) {
foreach ( $purchases as $entry ) {
if (has_term('xyz', 'books_cat', $entry->ref_id)) { // wyświetl jeśli wpis jest w określonej kategorii
echo '<a href="' . mycred_get_permalink( $entry->ref_id ) . '" title="'. mycred_get_the_title( $entry->ref_id ) .'">';
echo '<img src="' . get_the_post_thumbnail_url($entry->ref_id) .'">';
echo '</a>';
}
}
}
Chciałbym aby na stronie ostatecznie wyglądało to mniej więcej tak:
<h4>Wpisy z kategorii XYZ</h4>
<a href="..." class="zablokowane" title="Odblokuj teraz">...</a>
<a href="..." class="posiadasz" title="Wpis X">...</a>
<a href="..." class="posiadasz" title="Wpis Y">...</a>
<a href="..." class="posiadasz" title="Wpis Z">...</a>
<h4>Wpisy z kategorii ABC</h4>
<a href="..." class="posiadasz" title="Wpis A">...</a>
<a href="..." class="zablokowane" title="Odblokuj teraz">...</a>
<a href="..." class="zablokowane" title="Odblokuj teraz">...</a>
<a href="..." class="zablokowane" title="Odblokuj teraz">...</a>
Nie wiem do końca jak to ze sobą połączyć. Pomoże ktoś?