2017-12-06 10 views
0

wp_update_post을 사용하여 category 게시물을 변경하고 업데이트하고 싶습니다. 카테고리를 변경하려면 <a> 또는 <button>앵커에서 wp_update_post 카테고리를 클릭하십시오.

을 클릭하여 변경해야합니다. 내가 알기 론, 게시물에 대한 업데이트가 적용되어야합니다. 테마의 기능에 대한 자세한 내용

업데이트 우편 번호 - - 아직 테스트하지

$live_paused = array(
'post_category' => 6 
); 

// Update the post into the database 
    wp_update_post($live_paused); 

그러나 어떻게이

echo '<a href="" id=""><i class="fa fa-pause"></i></a>'; 

편집에이 기능을 추가 설정할 수 있습니다.

function live_paused_status($post_id){ 
if (current_user_can('edit_post', $post->ID)) { 

    $live_paused = array(
     'post_category' => 6 
    ); 
    echo '<a href="" id=""><button title="" data-toggle="tooltip" class="campaigns-link-button" type="button" data-original-title="Pause Campaign"><i class="fa fa-pause"></i></button></a>'; 

    // unhook this function so it doesn't loop infinitely 
    remove_action('save_post', 'live_paused_status'); 

    // update the post, which calls save_post again 
    wp_update_post($live_paused); 

    // re-hook this function 
    add_action('save_post', 'live_paused_status'); 
} 
} 

add_action('save_post', 'live_paused_status'); 

당신은 후크 스크립트에 AJAX 요청을해야

<?php $query = new WP_Query(array('post_type' => 'campaigns'));?> 
    <?php if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> 
     <div class="card"> 
     <div class="card-footer"> 
      <div class="row"> 
      <div class="col-4 campaigns-link"> 
       <?php echo live_paused_status(); ?> 
      </div> 
      </div> 
     </div> 
     </div> 
    <?php endwhile; wp_reset_postdata(); ?> 
+0

그냥 ajax를 사용하십시오. 그게 다야. –

+0

고맙습니다, 디팍. 질문에 대답을 할 수있는 기회가 생길 수 있습니다. 건배. – Darren

+0

루프 및 업데이트 게시물 코드 –

답변

1

루프.

https://codex.wordpress.org/AJAX_in_Plugins

당신은 기본적으로하는 행동을 추가하려고 : 워드 프레스에서 AJAX를 접선 당신은 워드 프레스 코덱스에서 문서를 봐야한다, 조금 이상하지만, 대신 당신을 위해 그것을 시도 양식 입력에서 게시물 범주 ID가 전달되면 JS를 사용하여 POST 요청에서이를 전송 한 다음 해당 ID를 가져 와서 범주를 업데이트합니다.

희망이 도움이됩니다.

<?php 

add_action('wp_ajax_custom_update_category', 'custom_update_category'); 

function custom_update_category() { 
    $cat_id = sanitize_text_field($_POST['cat_id']); //passed from AJAX. Make sure to escape it just in case. 
    # update the category here with $cat_id 
} 

당신을 위해 그것을 작성하지 않고, 더 내 대답을 수정하려고 편집 :

  1. 이 양식을 작성합니다. 나는이 당신은 AJAX가 cat_id 매개 변수를 포함와 POST 요청을 (만들 필요가
  2. 이를 당기는 WP 템플릿 루프에서 다음 $cat_idoptionvaluename="cat_id"select 입력의 몇 가지 유형을 가지고, 상상 select 입력의 value). 여기에 내가 과거에 만든 것이있다. 내 예 (custom_update_category)에서 add_action에 접미사로 action 같은 일을 이름

     var cat_id = $('#product-cat-select').val(); 
    
         $.ajax({ 
         type : "POST", 
         url : ajaxurl, 
         data : { 
          action: "custom_update_category", 
          cat_id: cat_id 
         }, 
         success: function(response) { 
          console.log(response); 
         } 
        }); 
    
  3. 알 수 있습니다. cat_id이 선택 입력에서 가져온 다음 AJAX 요청의 data 개체로 전송됩니다.

  4. 해당 data 개체를 사용하여 해당 스크립트 내에서 내 PHP 내에서 $cat_id을 가져올 수 있습니다.

action 이름이 실제로 열쇠입니다.

+0

업데이트 주셔서 감사합니다. Plushy Object. 나는 혼자서 많은 진전을 이루지 못하고있다. 그냥 내 머리를 잡지 못해. 게시물 카테고리를 변경하려면 AJAX가 정말로 필요합니까? – Darren

+0

기본적으로 브라우저 이벤트를 요청하고 있습니다. 링크를 클릭하여 카테고리 업데이트를 시작합니다. 클라이언트 (브라우저)와 서버 (WP) 간의 연결을 설정하는 데 필요합니다. – plushyObject

+0

감사합니다. – Darren