[Hỏi] Cách tạo tool auto post cho wordpress

Discussion in 'Hỏi Đáp Kỹ Thuật' started by itshipvn, Aug 10, 2018.

  1. money

    money Hương Chủ

    Lên nào :D
     
  2. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Up cái nào
     
  3. Nai

    Nai MiddleMan Staff Member

  4. Cháu dì Sáu

    Cháu dì Sáu Bang Chúng

    <?php #
    include ('../wp-load.php');
    function wp_post_link($title,$content,$category,$wptime) {
    //-- Set up post values
    $postdate = date($wptime);
    $myPost = array(
    'post_status' => 'publish',
    'post_type' => 'post',
    'post_author' => $authorID,
    'post_title' => $title,
    'post_content' => $content,
    'post_date' =>$postdate,
    'comment_status' => 'closed',
    'ping_status' => 'closed',
    );
    //-- Create the new post
    $newPostID = wp_insert_post($myPost,$wp_error=true);
    return $newPostID;
    }
    ?>
     
    quang mít likes this.
  5. thitgaluoc

    thitgaluoc Hương Chủ

    update code bằng python qua xmlrpc
    cần chạy pip install python-wordpress-xmlrpc trước
    Code:
    from wordpress_xmlrpc import Client, WordPressPost
    from wordpress_xmlrpc.methods.posts import GetPosts, NewPost, EditPost
    import logging
    logger = logging.getLogger(__name__)
    
    #authenticate
    wp_url = "https://llllllllllllllllllllllllll.llllllllllllllllllllllllll/xmlrpc.php"
    wp_username = "llllllllllllllllllllllllll"
    wp_password = "lllllllllllllllllllllllllll"
    wp = Client(wp_url, wp_username, wp_password)
    
    def find_id(title):
        offset = 0
        increment = 10
        while True:
            filter = { 'offset' : offset }
            p = wp.call(GetPosts(filter))
            if len(p) == 0:
                    break  # no more posts returned
            for post in p:
                if post.title == title:
                    return(post.id)
            offset = offset + increment
        return(False)
    
    def new_post(title, content, category=[], tags=[]):
        flag_shortpost = False
        #newish post
        post = WordPressPost()
        # post.id = 590
        post.title = title
        post.content = content
        post.post_status = 'publish'
        post.terms_names = {
          'post_tag': tags,
          'category': category
        }
        if len(content) < 1000:
            flag_shortpost = True
        if hasattr(post,'id'):
            wp.call(EditPost(post.id, post))
        else:
            try:
                post_id=find_id(post.title)
                if post_id:
                    logger.warning("Duplicated ID {}, titled {}".format(post_id, post.title))
                else:
                    if not flag_shortpost:
                        wp.call(NewPost(post))
            except:
                logger.warning("ERROR, post content : \n Title : {} \n Content {} \nTags {}\n Category {}_______________________\n\n".format(title, content[:200], tags, category))
                logger.exception("message")
     
  6. Dung Le

    Dung Le Sơ Nhập Giang Hồ

    Ủa rồi hàng họ không lên sàn được luôn rồi hả ta, chờ hoài không thấy , hay bác ấy làm ăn được quá nên không buồn đi bán dạo code nữa rồi.
     
  7. wpresources

    wpresources Bang Chúng

    Em ké cái topic,là nếu em dùng java để insert post và lên lịch bài viết thì làm thế nào,khi insert lên lich trực tiếp từ wordpress thì nó tạo một dòng cron trong bảng options.Ai có thông tin gì chỉ em với ạ em tìm hoài không thấy
     
  8. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Tạo thêm 1 dòng cron để làm gì vậy, Tạo cron từ linux củng ngon mà
     
  9. wpresources

    wpresources Bang Chúng

    Cron nếu insert lên lịch trực tiếp từ wordpress sẽ có mà anh,cái cron là bản ghi trong bảng options đó để xem bài viết nào lên lịch để nó đọc ra.
    Cấu trúc mỗi bài lên lịch có vài dòng mà em không tìm thấy thông tin ý nghĩa của nó mới chết

    Em còn newbie nên học từ từ,em vẫn dùng java xử lý trước đã bác ạ
     
  10. Trương Thanh Tuấn

    Trương Thanh Tuấn Tân Thủ Thôn

    Mình muốn mua tool, báo giá đi bác ơi