Intereting Posts
Как настроить запрос в view.popup в SugarCRM Идентификатор SyntaxError: начинается сразу после числового литерала. Передача переменной PHP в JavaScript Django / mod_wsgi WAMP с PHP Создание динамического JSON из foreach Как сгенерировать json с помощью php? Symfony 1.4: лучший способ обеспечить загрузку файла без использования шаблона / представления Установить задание cron php Показывать статус входа для подключения пользователя с помощью Websocket и Pusher SQL-запрос с двоичными данными (PHP и MySQL) Laravel – Файлы для скачивания exec не работает в php-скрипте (WAMP Server) Сертификат peer не может быть аутентифицирован с помощью известных сертификатов CA с использованием расширения PHP OAuth Добавьте <a> к каждому слову внутри <h3> Joomla – динамический выпадающий список в панели администратора Symfony2 / Datatable Bundle – ошибка: установите идентификатор datatable в вашем действии с помощью «setDatatableId», используя идентификатор из вашего представления

update_post_meta для WordPress Yoast SEO

У меня возникают проблемы с 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 ); }