Intereting Posts
WP_Query: Почему липкий пост не первый элемент в цикле? Программно изменяющийся шаблон страницы Добавить окно поиска на страницу Необходим синтаксис: запрос таксономии Использование флажков на странице параметров плагина для пользовательского плагина Пользовательские слайд-шоу типа слайд-шоу для вставки в плагин Проверьте, что пользователь вошел в систему с помощью JS Разрешить пользователям редактировать свой профиль? Пользовательская таксономия переписывается с использованием налогового имени вместо перезаписи Добавление видео в виде миниатюр (без фотоснимков, только проигрыватель меньшего размера) $ TBA Получение перевода в $ 0 (пользовательские поля) Разделение базы данных улучшит производительность? Как перенаправить пользователя после входа на страницу, названную по его имени? Как изменить размер текста в Word Press Как я могу ставить в очередь стили / скрипты на определенных страницах / wp-admin?

Вложения, добавленные в пользовательские типы сообщений, имеют родительский пост?

На страницах вложений у меня есть ссылка на сообщение / страницу, на которой был загружен файл. (Это не отображается для файлов, которые были напрямую добавлены в медиа-библиотеку, и все в порядке.)

Для вложений, добавленных к сообщениям и страницам, следующий код генерирует ссылку:

$post = get_post( get_the_ID() ); if ( $post->post_parent ) { echo '<a href="' . get_permalink( $post->post_parent ) . '">' . get_the_title( $post->post_parent ) . '</a>'; } 

Однако, когда я пытаюсь просмотреть вложение, которое было загружено в пользовательский тип сообщения, оно не работает.

Если я покажу var_dump из $ post, я получаю следующее:

 object(WP_Post)#398 (24) { ["ID"]=> int(789) ["post_author"]=> string(1) "1" ["post_date"]=> string(19) "2015-04-17 13:32:39" ["post_date_gmt"]=> string(19) "2015-04-17 13:32:39" ["post_content"]=> string(0) "" ["post_title"]=> string(5) "image" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "inherit" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(5) "image" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2015-04-17 13:32:39" ["post_modified_gmt"]=> string(19) "2015-04-17 13:32:39" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(63) "wp-content/uploads/2015/04/image.jpg" ["menu_order"]=> int(0) ["post_type"]=> string(10) "attachment" ["post_mime_type"]=> string(10) "image/jpeg" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" } 

В отношении части ["post_parent"]=> int(0) подразумевается, что файлы, прикрепленные к пользовательским сообщениям, не имеют родителя.

Может ли кто-нибудь подтвердить это? Или это может быть ошибка с этим способом? У меня есть настраиваемый тип сообщений?

Я пробовал как иерархические, так и неиерархические типы, а также поддерживал и не поддерживал «атрибуты страницы».

Спасибо заранее за помощь,

Адам

Solutions Collecting From Web of "Вложения, добавленные в пользовательские типы сообщений, имеют родительский пост?"

После некоторых исследований я обнаружил, что пользовательские типы сообщений не сохраняют post_parent для вложений или могут потребовать некоторой настройки с помощью register_post_type () .

Тем не менее, я обнаружил, что при загрузке вложений в обычные сообщения WordPress отправляет post_id с AJAX, и то же самое не происходит с пользовательскими типами сообщений. Итак, нам нужно назначить post_id для пользовательского загрузчика типа Post Post Type. Вот фрагмент.

 add_filter( 'wp_insert_post', 'foo_insert_post'); function foo_insert_post( $post_id, $post, $update ){ //if this is cpt, go on if( 'your_cpt' === $post->post_type ){ //ref: wp-includes\media.php @ ~2648 //ref: https://developer.wordpress.org/reference/hooks/plupload_default_params/ add_filter( 'plupload_default_params', 'foo_plupload_config'); } } function foo_plupload_config($params){ global $post; //assign current post id $params['post_id'] = $post->ID; return $params; } 

Надеюсь, что это работает.

У меня недавно была аналогичная проблема, и я обнаружил, что следующий параметр в функции register_post_type :

 "hierarchical" => true 

это ответ.