質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

801閲覧

ワードプレスで自動投稿をする時に、IDを決めて投稿したい

hikaa

総合スコア19

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/25 15:26

編集2022/01/12 10:55

タイトルの通りです。

株価のデータをワードプレスで自動投稿し、まとめていきたいのですが、その時の投稿ID(post_id)を銘柄番号にしたいと考えています。

ちなみにIDは、リスト化されたものがあり、それをIDとして渡したいです。

様々な方法を調べたのですが、今のところIDを手動で書き直すプラグインは見つかったのですが、最初からIDを指定する方法がありませんでした。

なにかアイデアをお持ちの方、教えていただけると幸いです。

python

1 2from wordpress_xmlrpc import Client, WordPressPost 3from wordpress_xmlrpc.methods.posts import GetPosts, NewPost 4from wordpress_xmlrpc.methods.users import GetUserInfo 5 6wp = Client('サイトURLxxx', 'ユーザーIDxxx', 'パスxxx') 7 8 9post = WordPressPost() 10ws = wb.Worksheets("Sheet1") 11# 記事タイトル 12post.title = ws.Range("B2").value 13# 記事内容 14post.content = ws.Range("a1").value 15post.terms_names = {'category': ["有料時系列過去データ一覧"]} 16 17# いきなり公開する設定。'draft'で下書き公開 18post.post_status = 'publish' 19wp.call(NewPost(post)) 20 21wb.Save() 22wb.Close()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

wp_insert_postで投稿IDをIDではなく
import_idとして指定すれば任意のIDで投稿を作成することができます

投稿2021/02/25 16:17

KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hikaa

2021/02/28 00:09 編集

回答ありがとうございます。 書き忘れていましたが、pythonで編集しています。教えていただいた情報を調べてみたのですが、私の調べ方がダメなのか、解決できませんでした。コードを追加したので、もし修正方法をご存じであれば教えていただきたいです。
KazuhiroHatano

2021/02/28 00:55

xmlrpcではダメそうですね、内部的にはwp_insert_post は使っているものの imort_idを指定しても除去されてしまいます https://core.trac.wordpress.org/browser/tags/5.6.2/src/wp-includes/class-wp-xmlrpc-server.php#L1364 IDを指定していて、既にそのIDの投稿が存在するなら更新する というようにはなっているので、銘柄ID毎の投稿を あらかじめ用意しておけば銘柄IDを投稿IDとして更新はできるはずです
hikaa

2021/03/06 13:35

ありがとうございます。 ただ、4000個ほどのIDを手打ちであらかじめ用意するのが難しいのですが、何かいい方法はありますか?
KazuhiroHatano

2021/03/06 14:43

回答の通りwp_insert_postではIDを指定して投稿することは可能なので WordPressのプラグインなどとしてPHPで作れば比較的簡単にできます データがPHPでも取得できるならWordPressのプラグインとして Pythonでしかデータを取得する手段がないのであれば WP APIでIDを指定して投稿できるようにするか あるいは逆にPHPからpythonの実行結果を 得られるようにして処理するかですかね
KazuhiroHatano

2021/03/08 09:30

これも候補ですかね xmlrpc_wp_insert_post_data https://developer.wordpress.org/reference/hooks/xmlrpc_wp_insert_post_data/ 基本xmlrpcの投稿でimport_idを指定することはできないですが このフックでimport_idを入れることはできそうです post_contentのどこかに銘柄IDを持たせて xmlrpc_wp_insert_post_dataでそれを取り出して import_idとして指定、という形でも実現はできそうです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問