web-dev-qa-db-ja.com

Cronを使用してSQL経由で投稿を変更する

こんにちは私はこれを1日2回実行する必要があります:

UPDATE wp_posts SET post_content = REPLACE ( post_content, '[img]', '<img src="' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[IMG]', '<img src="' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/img]', '" />' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/IMG]', '" />' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[b]', '<strong>' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[B]', '<strong>' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/b]', '</strong>' );
UPDATE wp_posts SET post_content = REPLACE ( post_content, '[/B]', '</strong>' );

どうすればそれができますか?私はそれを手動で実行したくありません、そして私がMUウェブサイトを運営していて私の作者が彼らのコードをbbCodeからHTMLに修正するのが面倒だから私は投稿が公開されるたびにそれをすることができません。私はcPanelを使っているので、あなたがそれをどうやってやるか教えてくれれば簡単にCronJobを追加することができます。ありがとうございます!

2
Downloadtaky

独自のスケジュールを作成するのは少々面倒です(永続的でデータベースに格納する必要があるためです)が、1日に2回実行されるネイティブスケジュールの1つにホップするのはとても簡単です。

add_action( 'wp_version_check', 'my_function' );

function my_function() {

    //stuff
}

実際のクエリを実行するためには、 $wpdb を使うべきです。

2
Rarst

このようなwp-load.phpを含むphpファイルを作成することができます:

require_once(wp-load.php');
global $wpdb;

そうすれば、データベースオブジェクトを含むwordpress内のものにアクセスできるので、$ wpdb-> query()を使用してクエリを実行できます。

あなたはただcronを通してそのファイルをロードすることができます(あなたはおそらくウェブサーバーを通してURLをwgetする必要があります)。

1
AutoBlogged