У меня возникают проблемы с Yoast Worpdress 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 keys,
Я также изучал его класс и функции отсюда,
: 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
Но до сих пор нет успеха
Любая помощь будет оценена,
Попробуйте 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 ); }