У меня есть веб-страница, на которой я хочу отображать изображения, загруженные определенным автором.
В серверной части, если я смотрю на мультимедиа, каждое изображение имеет атрибут «Загружен», а затем имя автора.
пример http://www.discoveryourwonder.com/wp-content/uploads/2015/05/sg.png
Я пытался использовать этот цикл:
<?php
// The Query
$args = array(
'author' => $author_name_variable, // Replace with author id
'post_status' => 'any',
'post_type' => 'attachment'
);
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . the_content() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>
Это очень глючит. Некоторые авторы будут показывать каждый медиафайл, другие нет; остальные просто неточны. Это настоящий слепой выстрел: /
Цель состоит в том, чтобы перебрать все медиа-файлы, а затем опубликовать the_content()
всех файлов с соответствующим загруженным именем.
Я был бы признателен, если бы кто-то мог прокомментировать, почему идентификатор является более надежным, чем пуля в аргументе «автора».
Я нашел решение. Очевидно, аргумент ‘author’ не любит имена пользователей, поэтому я преобразовал его в ID, и теперь он работает. я использовал get_user_by( 'slug', $username );
получить всю информацию о конкретном имени пользователя, а затем присвоить этот массив переменной. Затем я отфильтровал переменную, чтобы использовать только идентификатор, и передал ее через аргументы.
Вот рабочий цикл:
<?php
// The Query
$profileid = get_user_by( 'slug', $username );
$args = array(
'author' => $profileid->id, // Replace with author id
'post_status' => 'inheret',
'post_type' => 'attachment'
);
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . the_content() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>
Других решений пока нет …