2014-10-29 73 views
1

我在与Yoast Worpdress SEO麻烦,自动更新的标题,关键字和描述,update_post_meta WordPress的Yoast SEO

我曾尝试几种方法没有成功,

首先测试我做过是这样的,直接在fucntions.php加入

update_post_meta('80', '_yoast_wpseo_title', 'Test SEO Title');

它工作正常,但是当我尝试这样的方法,它不会简单地工作

function save_seo_meta_data($post_id) { 
    global $post; 
    $data = new MovieData; 

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
     return $post_id; 
    if ('movie_post' == $_POST['post_type']) { 
     if (!current_user_can('edit_page', $post_id)) 
      return $post_id; 
     } elseif (!current_user_can('edit_post', $post_id)) { 
      return $post_id; 
    } 
    #wpseo_set_value('title', $data->seotitle, $post_id); 
    #WPSEO_Meta::set_value('title', $data->seotitle,$post_id); 
    update_post_meta($post_id, '_yoast_wpseo_title', $data->title); 
} 
add_action('save_post', 'save_seo_meta_data',9999999); 

全部采用上面的代码这三部作品,当我改变超常关键不同值

wpseo_set_value('title', $data->seotitle, $post_id); 
WPSEO_Meta::set_value('title', $data->seotitle,$post_id); 
update_post_meta($post_id, '_yoast_wpseo_title', $data->title); 

我检查wp_postmeta值,可以看到所有的值,如果我设置不同的密钥,但不当我点到yoast SEO Meta键,

我一直也在考虑它的类,从这里的功能,

https://github.com/Yoast/wordpress-seo/blob/ba4b1ad63f64d9658a2cc8de22b4391459423516/inc/class-wpseo-meta.php

https://github.com/Yoast/wordpress-seo/blob/ba4b1ad63f64d9658a2cc8de22b4391459423516/inc/wpseo-functions.php

但仍然没有成功

任何帮助,将不胜感激,

回答

4

尝试wpseo_saved_postdata钩:

add_action('save_post', 'wpse26642385_save_post', 1, 1); 
function wpse26642385_save_post($post_id) 
{ 
    // check stuff 

    // $data = ... 

    add_action('wpseo_saved_postdata', function() use ($post_id) { 
     if(function_exists('wpseo_set_value')) { 
      update_post_meta($post_id, '_yoast_wpseo_title', $data->title); 
     } 
    }, 999); 
} 
+0

我用类似的代码,为客户的项目。我记得我花了一段时间才弄明白:)干杯! – diggy 2014-10-30 21:24:09

相关问题