Я использовал это раньше, и оно работало, но теперь возникла проблема. Я хочу выбрать прикрепленные аудиозаписи к сообщению. он извлекает старые прикрепленные аудиофайлы и не показывает новые вложения.
ниже приведена функция select_audios, которую я вызываю, и она возвращает аудиофайлы.
function select_audios()
{
header("Content-Type: text/html");
$args = $_REQUEST;
$cat_id = isset($args["cat_id"]) ? $args["cat_id"] : "";
$page_number = isset($args["paged"]) ? $args["paged"] : "";
$page_size = isset($args["page_size"]) ? $args["page_size"] : "";
$orderby = isset($args["orderby"]) ? $args["orderby"] : "";
$order = isset($args["order"]) ? $args["order"] : "";
$categories = get_categories();
$args = [
"post_type" => "post",
"paged" => $page_number,
"posts_per_page" => $page_size,
"tax_query" => [
[
"taxonomy" => "category",
"field" => "term_id",
"terms" => $cat_id,
],
],
"orderby" => $orderby,
"meta_key" => "order",
"order" => $order,
];
$audios_list = process_audio_items($args);
wp_reset_postdata();
$out = json_encode($audios_list);
unset($audios_list);
die($out);
}
add_action("wp_ajax_nopriv_select_audios", "select_audios");
add_action("wp_ajax_select_audios", "select_audios");
Вторая функция вызывается родительской функцией, она извлекает прикрепленные аудио на основе идентификатора.
function process_audio_items($args) {
$loop = new WP_Query($args);
$audios_list = [];
if ($loop->have_posts()):
while ($loop->have_posts()):
$loop->the_post();
$audio_item = (object) [];
$img_url = get_the_post_thumbnail_url();
$audio_item->{'audio_img_url'} = $img_url;
$site_dir = get_site_url(null, "", null);
if (empty($img_url)) {
$audio_item->{'audio_img_url'} =
$site_dir .
"/wp-content/uploads/2020/05/cropped-512x512-Google-Android-Chrome-8-1.png";
}
$audio = get_posts([
"post_parent" => get_the_ID(),
"post_type" => "attachment",
"post_mime_type" => "audio",
]);
$meta = get_post_meta(get_the_ID());
$audio_item->{'id'} = htmlspecialchars($audio[0]->ID);
$audio_item->{'title'} = htmlspecialchars(get_the_title());
$audio_item->{'ordernumber'} = $meta["order"][0];
$audio_item->{'audio_post'} = get_home_url();
$audio_item->{'description'} = htmlspecialchars(get_the_excerpt());
$audio_item->{'audio_src'} = wp_get_attachment_url(
$audio[0]->ID,
"full"
);
array_push($audios_list, $audio_item);
unset($audio_item);
endwhile;
endif;
return $audios_list;
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... cific-post
Получить вложения к конкретному сообщению ⇐ Php
Кемеровские программисты php общаются здесь
1716306225
Anonymous
Я использовал это раньше, и оно работало, но теперь возникла проблема. Я хочу выбрать прикрепленные аудиозаписи к сообщению. он извлекает старые прикрепленные аудиофайлы и не показывает новые вложения.
ниже приведена функция select_audios, которую я вызываю, и она возвращает аудиофайлы.
function select_audios()
{
header("Content-Type: text/html");
$args = $_REQUEST;
$cat_id = isset($args["cat_id"]) ? $args["cat_id"] : "";
$page_number = isset($args["paged"]) ? $args["paged"] : "";
$page_size = isset($args["page_size"]) ? $args["page_size"] : "";
$orderby = isset($args["orderby"]) ? $args["orderby"] : "";
$order = isset($args["order"]) ? $args["order"] : "";
$categories = get_categories();
$args = [
"post_type" => "post",
"paged" => $page_number,
"posts_per_page" => $page_size,
"tax_query" => [
[
"taxonomy" => "category",
"field" => "term_id",
"terms" => $cat_id,
],
],
"orderby" => $orderby,
"meta_key" => "order",
"order" => $order,
];
$audios_list = process_audio_items($args);
wp_reset_postdata();
$out = json_encode($audios_list);
unset($audios_list);
die($out);
}
add_action("wp_ajax_nopriv_select_audios", "select_audios");
add_action("wp_ajax_select_audios", "select_audios");
Вторая функция вызывается родительской функцией, она извлекает прикрепленные аудио на основе идентификатора.
function process_audio_items($args) {
$loop = new WP_Query($args);
$audios_list = [];
if ($loop->have_posts()):
while ($loop->have_posts()):
$loop->the_post();
$audio_item = (object) [];
$img_url = get_the_post_thumbnail_url();
$audio_item->{'audio_img_url'} = $img_url;
$site_dir = get_site_url(null, "", null);
if (empty($img_url)) {
$audio_item->{'audio_img_url'} =
$site_dir .
"/wp-content/uploads/2020/05/cropped-512x512-Google-Android-Chrome-8-1.png";
}
$audio = get_posts([
"post_parent" => get_the_ID(),
"post_type" => "attachment",
"post_mime_type" => "audio",
]);
$meta = get_post_meta(get_the_ID());
$audio_item->{'id'} = htmlspecialchars($audio[0]->ID);
$audio_item->{'title'} = htmlspecialchars(get_the_title());
$audio_item->{'ordernumber'} = $meta["order"][0];
$audio_item->{'audio_post'} = get_home_url();
$audio_item->{'description'} = htmlspecialchars(get_the_excerpt());
$audio_item->{'audio_src'} = wp_get_attachment_url(
$audio[0]->ID,
"full"
);
array_push($audios_list, $audio_item);
unset($audio_item);
endwhile;
endif;
return $audios_list;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78512990/get-post-attachments-of-a-specific-post[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия