Удалить тип записи костюма из внешнего интерфейса - PullRequest
0 голосов
/ 06 мая 2020

Я создал тип сообщения costum

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

это мой код

      <?php if( is_user_logged_in() && is_author(get_current_user_id()) )
echo "<a  href='" . wp_nonce_url("/wp-admin/post.php?action=delete&amp;post=$id", 'delete-post_' . $post->ID) . "'><i class=\"fa fa-fw fa-times\"></i>حذف </a>";?>

Ответы [ 2 ]

1 голос
/ 06 мая 2020

Добавление следующего кода позволит вам удалить сообщение из внешнего интерфейса в WordPress.

Метод 1: -

<?php
$url = get_bloginfo('url');
  if(is_user_logged_in() && is_author(get_current_user_id() && current_user_can('edit_post', $post->ID))){
    echo '<a class="delete-post" href="';
    echo wp_nonce_url("$url/wp-admin/post.php?action=trash&post=$id", 'delete-post_' . $post->ID);
    echo '"><i class=\"fa fa-fw fa-times\"></i>حذف</a>';
  }
?>

Метод 2: -

<?php
if(is_user_logged_in() && is_author(get_current_user_id())){
    echo '<a href="'.get_delete_post_link($post->ID).'"><i class=\"fa fa-fw fa-times\"></i>حذف</a>';
}
?>
0 голосов
/ 06 мая 2020

готово,

Я провел небольшое исследование и нашел что-то вроде этого

//function to print publish button
function show_publish_button(){
Global $post;
//only print fi admin
    echo '<form id="myForm" name="front_end_publish" method="POST" action="">
            <input type="hidden" name="pid" id="pid" value="'.$post->ID.'">
            <button type="submit" name="submit" id="submit" value="حذف" class="btn" style="margin-left:2px;background:#f5f5f5;"><i class="fa fa-fw fa-times"></i>حذف</button>
        </form>';}

затем:

    //function to update post status
function change_post_status($post_id,$status){
    $current_post = get_post( $post_id, 'ARRAY_A' );
    $current_post['post_status'] = $status;
    wp_update_post($current_post);
}

    if (isset($_POST['pid']) && !empty($_POST['pid'])){
    change_post_status((int)$_POST['pid'],'trash');
}

мимо всего кода выше в функциях. php

затем в файле шаблона вызвать функцию show_publish_button (); чтобы показать кнопку удаления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...