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

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

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

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

Q&A

解決済

3回答

1722閲覧

Wordpressに置いて自動で投稿

SugiuraY

総合スコア317

WordPress

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

0グッド

1クリップ

投稿2016/07/18 03:53

最終的な目的は、投稿記事について自動で投稿できるようにしたいと考えております。

<現状>
①投稿するために必要なコンテンツ情報(主に数字のパラメータ群ですが)については、自前のテーブル(wp_myinfo)を作成し、全て格納しております。また、これを使用できるようにwp_db.phpも書き換えております。
②投稿記事側のテーブルは、自分で記事を記載投稿することを意図していないため、wp_postsのpost_titleとidしか情報をもたせておりません。

<やりたいこと>
①各記事を投稿する
通常のsingle.phpの

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>の作業と変わりません。ただここでもってくるwp_postの情報は上記の通り、post_titleとidのみです。

②post_titleまたはidをkeyにして、自前のwp_myinfoから、記事に必要なパラメータをもってくる。
③上記の①と②の組み合わせにより、それぞれの記事を完成させる。というイメージです。
なお、wp_postに、wp_myinfoの情報をそのまま持たせないのは、wp_postの各カラムをいじりたくないからです。

<ご質問>
①このような形で、id等をkeyに他のテーブルから必要なパラメータを取得しているくることは可能でしょうか?(もし可能であれば、そのやり方が載っているサイト等をご教示いただく方法でも構いません)

②また、wp_postのテーブルについても、記事投稿を自動で行うために、使用するだけ(single.phpを動かすため)なので、本来はidとpost_titleをwp_myinfoから自動的に読み込ませたいと考えております。(現状は、記事の投稿から手入力で入れたりしています)。wp_myinfo>wp_postsに自動で情報を流す方法はございませんでしょうか。

まだまだ、不慣れで、お伝えするに十分な情報を記載できていないかもしれません。ご指摘いただければ、加筆をさせていただきます。
何卒、お力添えのほど、よろしくお願い申し上げます。

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

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

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

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

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

kei344

2016/07/18 04:35

一括でデータを入力したいのか、指定日に記事を表示したいだけか、外部のシステムからの出力を使いたいのか、具体的に質問文に追記いただけませんか?また、自前のテーブルをわざわざ用意する理由も併せて追記いただけるとありがたいです。
Zuishin

2016/07/18 05:44

ワードプレスには指定日時に自動的に投稿する予約投稿システムが標準であります。それを使わない理由は何でしょうか?
SugiuraY

2016/07/18 08:55

上手にご説明さしあげることができるかわかりませんが、頑張ります。 single.phpの中には、複数の変数がセットされており、dbから当該変数を参照するように作られております。これをwp_postテーブルから直接持ってきては、wp_postに備わってくるカラムの作りからではもってくることができません。wp_postのカラムをいじって、the_postで投稿記事を出力することも可能かと思いますが、あまりそこをいじるのは望ましくないと考えております。 例えばですが、wp_postにはA君という情報だけ持っており、他のテーブルにはA君の1、慎重2、体重、3、年収など複数のパラメーターを持っており、実際に投稿記事上はこれをを複雑に計算させた上で出力しています。これらのパラメータをwp_postのカラムをいじって出力するのではなく、外部テーブルから$wpdbのグローバル変数メソッドを使用して出力して行きたいと考えています。 よろしくお願い申し上げます。
guest

回答3

0

ベストアンサー

読めば読むほど、何をやりたいのか読み取れませんが、
結局のところ、機械的に投稿したいということだと解釈します。

それなら、COREにゴニョゴニョ手を加えるのではなく、

WP REST API でも使えば済む話だと思われます。

投稿2016/07/18 14:29

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

wp_db.phpも書き換えております。

WPの構成ファイルを書き換えてしまうとバージョンアップがし辛くなるのでお勧めしません。
書き換えなくても(たとえば)別DBにもアクセス出来ます。

【WordPressから別のデータベースに接続する | レンタルサーバーのCPIスタッフブログ】
http://shared-blog.kddi-web.com/webinfo/35

WordPress における DB の扱い方については下記連載が非常に丁寧です。

【wpdb道場 | 高橋文樹.com】
http://takahashifumiki.com/keywords/wpdb-dojo/

【WordPressでオリジナルのデータベース(テーブル)を作成する [プラグイン開発中級編] | webOpixel】
http://www.webopixel.net/wordpress/637.html


また、記事に対して付加情報を持たせるなら、標準でも「カスタムフィールド」という機構があります。下記はそれを使いやすくするプラグインの一例です。(よっぽどDBが複雑で無ければこれが最適解であると思います)

【【WordPress】プラグイン Smart Custom Fields でカスタムフィールドを半自作する | バシャログ。】
http://bashalog.c-brains.jp/15/03/24-150000.php


①各記事を投稿する

通常のsingle.phpの

single.php は表示のためのテンプレートファイルです。ここに投稿機能を付けることはあまりしません。多分各記事を「表示」するということだとは思うのですが、少し混乱しました。

投稿2016/07/18 10:37

kei344

総合スコア69364

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

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

0

投稿2016/07/18 09:45

Zuishin

総合スコア28656

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問