是否将SEO Meta Desc“自定义域”复制到摘录域?

时间:2012-10-30 作者:Drewdavid

我真的很想把我所有的旧帖子都拿出来,并自动使用我们写的元描述——目前每个帖子都是使用一个搜索引擎优化包完成的——并将它们复制成我们的帖子摘录。

AIO SEO描述使用的自定义字段为_aioseop_description.

有人知道如何做到这一点吗?

2 个回复
最合适的回答,由SO网友:brasofilo 整理而成

Please, backup your database before running this.

代码非常简单,并在本地WordPress中进行了测试<这个建议只是为了预防,因为我想你正在处理一个实时站点。

将代码复制到PHP文件中,将其上载到plugins文件夹并激活。

激活时,它将遍历所有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.

SO网友:Dan Pearce

我找不到这个问题的答案,所以我开发了一个插件,将添加来自All-in-One SEO包的描述,并将其保存为WordPress博客中所有帖子的描述。

您可以从下载here. 请确保首先备份数据库。

结束

相关推荐

删除Yoast SEO帖子Metabox

Yoasts SEO插件在后期编辑屏幕中添加了一个元框。我正在尝试为非编辑或更高级别的用户删除此项。我试着把remove_meta_box 在admin\\u init上调用,尝试删除$wpseo\\u metabox上的操作,但没有效果。如何在不需要用户干预的情况下删除此元数据库(用户永远不会知道该元数据库存在,因此单击屏幕选项不是一个选项)