• wordpress 数据远程同步方法


     今天给大家分享下python在本地远程同步文章数据到wordpress,如果你的网站数据库是支持远程连接的话,那可以用下面的方法。
    我当初写这个代码是为了解决wordpress底层站群的文章同步问题,可以让本地的mysql数据通过python脚本远程插入到网站数据库里,从而可以完成定时的更新。当然这个脚本如果部署到服务器上会更好,可以通过windows的计划任务和linux的cron服务来定期的启动这个脚本,从而达到每天更新文章的目的。

    写这个脚本主要是要熟悉wordpress的表结构,不然你没法插入数据到wordpress数据表。
    代码如下:

    wordpress 数据python同步方法

    #encoding=utf-8
    #description:同步wordpress文章数据
     
    import MySQLdb
    import datetime
    import time
    from  tools import *

    def wp_checktitle(dbconn,title):
        '''wordpress检测是否有重复标题'''

        cursor=dbconn.cursor()

        sql = "select post_title from wp_posts where post_title='%s'" % (title)
        cursor.execute(sql)

        if cursor.rowcount == 0:
            checkflag = 1
        else:
            checkflag = 0

        return checkflag



    def  sync_wordpress(dbconn,title,content):
        '''同步wordpress程序'''
        
        checkflag = wp_checktitle(dbconn,title)
        cursor=dbconn.cursor()
        
        curtime = str(datetime.datetime.now())[:19]
        
        post_author = 1
        post_date = curtime
        post_date_gmt = curtime
        post_content = content
        post_title = title
        post_name = post_title
        post_modified = curtime
        post_modified_gmt = curtime
        post_content_filtered = ''
        currenttime = int(time.time())
        

        if checkflag:
           try:
               postsql = ''
               postsql = '''INSERT INTO `wp_posts` (
                      `post_author` ,
                      `post_date` ,
                      `post_date_gmt` ,
                      `post_content` ,
                      `post_title` ,
                      `post_name` ,
                      `post_modified`,
                      `post_modified_gmt`,
                      `post_content_filtered`
                      )
                      VALUES (
                       '%(post_author)s','%(post_date)s','%(post_date_gmt)s','%(post_content)s','%(post_title)s','%(post_name)s','%(post_modified)s','%(post_modified_gmt)s','%(post_content_filtered)s')''' % {'post_author':post_author,'post_date':post_date,'post_date_gmt':post_date_gmt,'post_content':post_content,'post_title':post_title,'post_name':post_name,'post_modified':post_modified,'post_modified_gmt':post_modified_gmt,'post_content_filtered':post_content_filtered}
               

               cursor.execute(postsql)
               dbconn.commit()
               
               rowid = cursor.lastrowid
                   
               metasql = ''
               metasql = "insert into `wp_postmeta`(`post_id`)VALUES(%s)" % (rowid)
               cursor.execute(metasql)
               dbconn.commit()

               insertsql = '''INSERT INTO `wp_term_relationships` (
               `object_id` ,
               `term_taxonomy_id` 
               )
               VALUES (
               %(object_id)s%(term_taxonomy_id)s) ''' % {'object_id':rowid,'term_taxonomy_id':1}
               
               cursor.execute(insertsql)
               dbconn.commit()

               return 1

           except Exception, e:
                print '数据库错误:', e
                return 0

           finally:
                cursor.close()
                dbconn.close()
        else:
            print 'wordpress title exist'
            return 1

    title = 'titl-wptitle'
    zcontent = 'content—————–'

    curhost = ''##远程数据库服务器地址
    webuser = ''#数据库用户名
    webpwd =''#数据库密码
    webdb = ''#数据库名称

    dbconn = MySQLdb.connect(host=curhost, user=webuser, passwd=webpwd, db=webdb, port=3306, charset='utf8')
         
    flag = sync_wordpress(dbconn,title,zcontent)

    if flag:
        print 'wordpress sync success'
    else:
        print 'wordpress sync error'
     
  • 相关阅读:
    关于flask-sesson
    自己动手写出静态网站与动态网站
    支付宝支付
    Scanner
    JAVA编程
    《剑指offer》经典面试50题
    java程序员常见面试题
    Java面试题(一) String相关
    Java集合总览
    写好Java代码的30条经验总结
  • 原文地址:https://www.cnblogs.com/wanpython/p/2794553.html
Copyright © 2020-2023  润新知