Скопировать SEO-мета-описание "Пользовательское поле" в поле выдержки?
Я бы очень хотел взять все мои старые посты и автоматически использовать мета–описания, которые мы написали – в настоящее время они сделаны для каждого поста с использованием всего в одном пакете SEO - и скопировать их, чтобы они также стали выдержками из наших постов.
Пользовательское поле, используемое описанием AIO SEO, является _aioseop_description
.
У кого-нибудь есть идеи, как это сделать?
2 answers
Пожалуйста, создайте резервную копию своей базы данных перед запуском этого.
Код довольно прост и протестирован в локальном WordPress.
Этот совет просто на всякий случай, так как я полагаю, что вы имеете дело с живым сайтом.
Скопируйте код в файл PHP, загрузите его в папку плагинов и активируйте.
- При активации он будет перебирать все типы сообщений
posts
и проверять, есть ли в них отрывок. - Если нет, проверьте, есть ли описание "Все в одном".
- Если есть, заполните отрывок этой информацией.
<?php
/*
Plugin Name: AIOSEOP to Excerpt
Plugin URI: http://wordpress.stackexchange.com/q/70990/12615
*/
register_activation_hook( __FILE__, 'wpse_70990_activation_run' );
function wpse_70990_activation_run()
{
$args = array(
'post_type' => 'post'
, 'numberposts' => -1
, 'post_status' => published
);
$posts = get_posts( $args );
foreach ( $posts as $post )
{
if( '' == $post->post_excerpt )
{
$aioseop = get_post_meta( $post->ID, '_aioseop_description' ,true);
if( '' != $aioseop )
{
$po = array();
$po = get_post( $post->ID, 'ARRAY_A' );
$po['post_excerpt'] = $aioseop;
wp_update_post($po);
}
}
}
}
Документация: register_activation_hook
, get_posts
, get_post
, wp_update_post
.
Я не смог найти ответ на этот вопрос, поэтому я разработал плагин, который добавит описание из пакета "Все в одном SEO" и сохранит его в качестве описания для всех сообщений в вашем блоге WordPress.
Вы можете скачать его с здесь. Обязательно сначала создайте резервную копию своей базы данных.