当我单击一个按钮时,所有帖子的状态都会更新

时间:2020-01-26 16:31:37

标签: wordpress plugins

我正在尝试构建一个简单的 WordPress插件。 我在自定义帖子类型中添加了一个名为状态的自定义列,在该列上,我有一个按钮,用于显示该帖子的当前状态“ 发布”或“待处理”。

我想点击按钮,并将特定帖子的状态从发布更改为待处理反之亦然,但是当我单击特定帖子时,我会根据发布将所有帖子“更新”为待审核,反之亦然帖子的状态> 。

当我单击特定帖子以更改其状态时,它会将所有帖子的状态从发布更新为待处理,反之亦然,我想更改我单击的帖子的状态。

我有以下代码,请告诉我我做错了什么地方。

add_filter('manage_testimonials_posts_columns', 'publish_pending_column');
function publish_pending_column($column){

  $columns = array(
  'cb' => "<input type='checkbox'/>",
  'title' => 'Title',
  'btn' => 'Status' ,
  'date' => 'Date'

 );
 return $columns;
 } 


add_action('manage_testimonials_posts_custom_column', 'add_content_to_status_column',10,2);
    function add_content_to_status_column($columns, $post_id)
    {

      $status = get_post_status($post_id);
      echo "ID => ".$post_id;
      echo "status is ".$status."<br>";


      if(isset($_POST['change']))
      {

        if($status ==='publish')
        {
          echo "Now wer are inside in the publish if";
         wp_update_post(array
           (
            'ID'     => $post_id,
            'post_status' => 'pending'
         ),$wp_error = true);

        }
        elseif($status==='pending')
        {
          echo "we are inside pending if";
           wp_update_post(array
           (
            'ID' => $post_id,
            'post_status' => 'publish'
         ),$wp_error = true);

        }
      }

    switch ($columns) 
      {

        case 'btn':
        ?>

         <form action='' method = 'POST'>
          <?php $status = get_post_status($post_id);?>
          <input id ="<?php echo $post_id;?>" type='submit' name = 'change' value = '<?php echo $status;?>' />
        </form>

          <?php
          break;

        default:
          break;
      }
    }

0 个答案:

没有答案