2017-01-01 5 views
0

Я пытаюсь получить список тегов после сохранения.WordPress: Как получить новые теги для записей

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

вот код, я использую, чтобы получить тег:

add_action('save_post', 'collect_tags'); 
// ... 
function collect_tags($postId){ 
    $terms = get_object_term_cache($postId, 'post_tag'); 
    if (false === $terms) { 
     $terms = wp_get_object_terms($postId, 'post_tag'); 
    } 
    if(empty($terms)) { 
     $terms = wp_get_post_tags($postId); 
    } 
    return $terms; 
} 

Может ли кто-нибудь указать мне, где моя ошибка?

Я использую WordPress версию 4.7

+0

Вы знаете, что вы можете вытащить тег из поста, без какого-либо пользовательской функции сохранения? [get_the_tags] (https://codex.wordpress.org/Function_Reference/get_the_tags), проверьте связанную часть для других функций, относящихся к тегам ... –

+0

@dingo_d спасибо за комментарий, на самом деле это более простая версия моего плагин для проверки воды, мне нужно это, чтобы работать, прежде чем продолжить разработку плагина –

ответ

0

Попробуйте

function collect_tags($post_id, $post, $update) { 
    $terms = get_object_term_cache($post_id, 'post_tag'); 
    if (false === $terms) { 
     $terms = wp_get_object_terms($post_id, 'post_tag'); 
    } 
    if(empty($terms)) { 
     $terms = wp_get_post_tags($post_id); 
    } 

    // --- TEST --- 
    $tags = wp_get_post_tags($post_id); 
    print_r($tags); 
    // --- END --- 

    return $terms; 
} 
add_action('wp_insert_post', 'collect_tags', 10, 3); 
Смежные вопросы