2016-08-01 53 views
0

我已经创建了下面的WordPress的页面模板:通行证ID删除功能

<?php 
/* Template Name: Report Creator */ 

get_header(); 
wp_enqueue_style('wp-admin'); 

?> 

    <div id="primary" class="content-area"> 
     <main id="main" class="site-main" role="main"> 

      <?php 
?> 
    <style> 
     .table td{ 
      padding-left:0; 
     } 
    </style> 

<!-- ############################### --> 
<?php 
if(isset($_POST['function-action'])){ 
     $function_action = $_POST['function-action']; 
     switch($function_action){ 
      case 'form-edit-profile': 


       break; 

      case 'form-delete-profile': 

       wp_delete_post(); //pass ID over here to delete the post 
       break; 
      default: 
       break; 
     } 
    } 
?> 

<table> 
<tr> 
<th>Titel</th> 
<th>Creation Date</th> 
<th>Next fetch time</th> 
<th># of Recipience</th> 
<th>Functions</th> 
</tr> 
<?php 
if (is_user_logged_in()): 

    global $current_user; 
    $author_query = array('post_status' => array('draft'), 
    'author' => $current_user->ID, 
    'meta_query'    => array(
     array(
      'key'  => 'wpgamail_options', 
      'key'  => 'ganalytics_settings', 
     ), 
    ),); 
    $author_posts = new WP_Query($author_query); 
    while($author_posts->have_posts()) : $author_posts->the_post(); 
    ?> 
    <tr> 
    <td> 
     <?php the_title(); ?> 
    </td> 
    <td> 
     <?php $post_date = get_the_date(); echo $post_date; ?> 
    </td> 
    <td> 
     <?php $field = get_field('wpgamail_options', get_the_ID(), true); echo "Next report on " . date('l jS \of F Y h:i:s A', $field['nextfetchtime']); ?> 
    </td> 
    <td> 
     <?php echo count($field['recipients']) . " Recipient"; ?> 
    </td> 
    <td> 
     <form method="post"> 
     <input type="hidden" name="function-action" value="form-edit-profile"/> 
      <input type="submit" value="Edit Profile" class="button button-primary" /> 
     </form> 
    </td> 
    <td> 
     <form method="post"> 
     <input type="hidden" name="function-action" value="form-delete-profile"/> 
      <input type="submit" value="Delete Profile" class="button button-primary" onclick="return confirm('Do you really want to delete the report-settings?')" /> 
     </form> 
    </td> 
    </tr>  
    <?php   
    endwhile; 

else : 
    echo "You are not logged in. Please log in!"; 
endif; 
?> 
</table> 
<hr/> 

     </main> 
     <!-- .site-main --> 

    </div> 
    <!-- .content-area --> 
<?php get_footer(); ?> 

我的问题是,我不知道如何将当前选择的帖子的ID传递给switch-case构建以到delete/edit的帖子。

任何建议如何做到这一点?

我很感谢你的回复!

+1

'wp_delete_post(this.id);'??? –

+0

'wp_delete_post(get_the_ID());'会工作。 –

+0

@BhojendraNepal感谢您的回复!但'wp_delete_post(this.id);'不起作用。 – mrquad

回答

1

试试这个。

你的HTML

<form method="post"> 
    <input type="hidden" name="function-action" value="form-delete-profile" /> 
    <input type="hidden" name="this_id" value="<?php echo get_the_ID(); ?>" /> 
    <input type="submit" value="Delete Profile" class="button button-primary" onclick="return confirm('Do you really want to delete the report-settings?')" /> 
</form> 

你的PHP

<?php 
if(isset($_POST['function-action'])){ 
     $function_action = $_POST['function-action']; 
     $this_id   = (int)$_POST['this_id']; 
     $post_author  = get_post_field('post_author', $this_id); //Get post's author 
     switch($function_action){ 
      case 'form-edit-profile': 


       break; 

      case 'form-delete-profile': 
       if($post_author == get_current_user_id()) { //This condition is to check that currect is the author of this post 
        wp_delete_post($this_id); //pass ID over here to delete the post 
       } else{ 
        echo "You don't have permission to delete it.!"; 
       } 
       break; 
      default: 
       break; 
     } 
    } 
?> 

好运

+1

非常感谢!它完美的工作! – mrquad