Intereting Posts
Как добавить подпапки в медиа-библиотеку для лучшей организации? Получить текущий день недели и время вне цикла Рекомендовать гибкий лайтбокс, который позволяет использовать изображение или HTML Аутентификация возвращаемого значения Как автоматически отправлять электронную почту при публикации настраиваемого типа сообщений? Иерархическая структура постоянной ссылки для сообщений, показывающих категории и подкатегории Случай с верхним регистром для комментариев категория URL-структуры Как указать URLS для пользовательских сообщений и таксономий Высокое использование ЦП на 404 ошибках Нужен ли основной файл плагина так же, как и папка, содержащая его? wp_verify_nonce продолжает сбой У меня есть форма с пользовательской кнопкой, я хочу добавить данные поля в базу данных при нажатии на пользовательскую кнопку Создайте случайное уникальное 6-значное число в качестве настраиваемого поля для пользовательского типа сообщения Пользователи не могут загружать изображения на интерфейсе, если у них нет доступа к wp-серверу

удалять только сообщение в запросе / для каждого утверждения (передняя часть)

Я использую это в своих функциях, которые я могу использовать для удаления текущей страницы (пользовательский тип сообщения называется – ведро) и всех ее дочерних элементов:

function delete_post(){ global $post; $deletepostlink= add_query_arg( 'frontend', 'true', get_delete_post_link( get_the_ID() ) ); if (current_user_can('edit_post', $post->ID)) { echo '<span><a class="post-delete-link" onclick="return confirm(\'Are you sure to delete?\')" href="' . $deletepostlink . '">Delete this </a></span>'; } } //Redirect after delete post in frontend add_action('trashed_post','trash_redirection_frontend'); function trash_redirection_frontend($post_id) { if ( filter_input( INPUT_GET, 'frontend', FILTER_VALIDATE_BOOLEAN ) ) { $args = array( 'posts_per_page' => -1, 'order'=> 'ASC', 'post_parent' => $post_id, 'post_type' => 'bucket' ); // Filter through all pages and find Portfolio's children $children = get_children( $args ); global $wpdb; foreach($children as $child){ $childs[$child->ID] = $child->ID; } $sql = "UPDATE {$wpdb->posts} SET post_status = 'trash' WHERE ID IN (" . implode( ', ', $childs ) . ")"; $wpdb->query($sql); wp_redirect(); exit; } } 

Затем я называю это своей темой с этим

 <?php echo delete_post(); ?> 

Когда я использую эту функцию в своем шаблоне страницы, отображая все мои сообщения, она, очевидно, удаляет всю страницу и все ее дочерние элементы, а не только отдельную почту, вызываемую с запросом / для каждого оператора

Вот пример кода шаблона, который я использую, и где вызывается моя функция

 <?php /* Template Name Posts: Bucket Overview */ ?> <?php get_header(); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class="content"> <div class="stash-container"> <div class="main-view"> <?php global $authordata, $post; $my_meta = get_post_meta( $id, 'connect', true); $portfolio_sections = array( 'post_type' => 'bucket', 'category_name' => 'Folder', 'meta_key' => 'connect', 'meta_value' => $my_meta, 'orderby' => 'menu_order', 'posts_per_page' => -1, 'sort_column' => 'menu_order', 'sort_order' => 'ASC' ); $sections = get_posts($portfolio_sections); foreach ($sections as $section) { ?> <ul class="things"> <div class="category"> <i class="fa fa-folder-o" aria- hidden="true"> </i> <?php echo $section->post_title; ?> (<?php $children = get_pages( array( 'child_of' => $section- >ID, 'post_type' => 'bucket',) ); echo count($children);?>) <span class="modify-folder"> <?php echo delete_post(); ?> | edit </span> </div> <?php global $authordata, $post; $my_meta = get_post_meta( $id, 'connect', true); $portfolio_sites = array( 'post_type' => 'bucket', 'category_name' => 'drop', 'meta_key' => 'connect', 'meta_value' => $my_meta, 'orderby' => 'menu_order', 'posts_per_page' => -1, 'sort_column' => 'menu_order', 'sort_order' => 'ASC', 'post_parent' => $section->ID ); $sites = get_posts($portfolio_sites); foreach ($sites as $site) { ?> <li class="sites"> <a href="<?php echo get_the_permalink($site->ID); ?>"> <div class="rollover"> </div> </a> </li> <?php } ?> </ul> <?php } ?> <?php endwhile; endif; ?> <?php get_footer(); ?> 

Таким образом, вы можете увидеть в рамках вышеприведенного шаблона в классе span – modify-folder, я вызываю ссылку delete. Но он удаляет всю страницу не только $ section-> ID – я попытался изменить все ссылки на get_the_id и post_id в главном файле функции вместо $ section-> ID, но он не работает!

Пожалуйста помоги!

благодаря

Вы должны передать идентификатор сообщения, которое хотите удалить, в качестве аргумента функции delete_post (), а не полагаться на его получение через глобальную $ post внутри самой функции:

 <?php echo delete_post($section->ID); ?> 

Затем в вашей функции delete_post () вы можете использовать аргумент pass-in следующим образом:

 function delete_post($sectionid){ $deletepostlink= add_query_arg( 'frontend', 'true', get_delete_post_link( $sectionid ) ); if (current_user_can('edit_post', $sectionid)) { echo '<span><a class="post-delete-link" onclick="return confirm(\'Are you sure to delete?\')" href="' . $deletepostlink . '">Delete this </a></span>'; } }