通过帖子链接更新帖子元数据(自定义字段)

时间:2015-06-04 作者:Anna Gabrielyan

我在我的WordPress网站上有一篇帖子,里面有很多自定义字段。我有一个带有“post link”-“custom field data”组合的Excel工作表。已经为每篇文章设置了自定义字段(视频URL),但现在我需要根据Excel工作表更改和更新这些链接。我没有“post\\u id-post元数据”组合,只有链接和适当的元数据值。

有没有办法用一些代码更新这些数据?

1 个回复
SO网友:gdaniel

我有not 对此进行了测试,但想法是根据帖子URL找到帖子ID,然后更新该帖子的元字段。

我会将excel保存为csv格式。将其导入数据库中的新表。这样,您就可以轻松访问这些信息,而不必读取excel文件(这可能需要您包含一些额外的php类)。

一旦数据库中有excel数据,就可以提取该数据并在循环中运行它。

例如:

global $wpdb;
    //You can use $wpdb to query non-wordpress tables
    //Here I query I table I created video_urls
    //It has two columns. One with the post url, and one with the video url

    $results = $wpdb->get_results(\'SELECT * FROM video_urls\', OBJECT);

    //Loop through each result

    foreach($results as $result){

        //use the wordpress function url_to_postid() to get the post id

        $post_id = url_to_postid($result->post_url);

        //update the post_meta with the wordpress function below
        //you will need to know the name of the custom field.

        update_post_meta($post_id, "NAME_OF_CUSTOM_FIELD", $result->video_url);

    }
这应该有用,但请do not just copy and paste and expect it to work. 此外,在运行任何试图批量更新wordpress帖子的脚本之前,请备份数据库。

此代码可以粘贴到您的一个页面模板中,然后您只需加载该页面即可运行一次代码,并在稍后注释掉代码,这样它就不会再次运行。

结束

相关推荐

在插件中写入MySQL凭据

我必须创建一个自定义插件来打印来自不同于wordpress数据库的数据。我正在使用wpdb。从安全角度来看,以这种方式在插件文件中写入数据库credantials可以吗?还是应该以不同的方式进行?<?php function myfun() { $fundb = new wpdb(\'root\', \'password\', \'database\', \'localhost\'); $result = $fundb ->get_r