Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FC2ブログからWordPressにインポートしたらコメント文が変になった人が自己責任で実行するやつ</title>
<link rel="stylesheet" href="wp-admin/css/install.css" type="text/css" />
</head>
<body>
<h1>FC2ブログからWordPressにインポートしたらコメント文が変になった人が自己責任で実行するやつ</h1>
<h2>SECRET: *とか、PASS: *******とかが出ちゃう人へ。。。</h2>
<hr />
<h3>このスクリプトがやってくれること</h3>
<ul>
<li>非公開コメントは、WordPressの「承認待ち」にします。</li>
<li>SECRET: *とか、PASS: ******を消します。</li>
</ul>
<p><strong>※データベースのバックアップをしてから実行して下さい。</strong></p>
<p><strong>※このスクリプトで発生したいかなるトラブルも作成者は責任を負いません。自己責任で実行して下さい。</strong></p>
<form method="POST">
<input type="submit" value="実行する" />
<input type="hidden" name="go" value="1" />
</form>
<?php
if ($_POST['go'] == '1') {
fc2_comment_clean_4_wordpress();
}
function fc2_comment_clean_4_wordpress() {
//set_time_limit(0);
require( dirname(__FILE__) . '/wp-blog-header.php' );
$replaced = 0;
$regx_check_open = "/SECRET: 0/";
$regx_replace_open = array(
"/SECRET: 0/",
"/PASS: [a-f0-9]{128}/",
);
$regx_check_secret = "/SECRET: 1/";
$regx_replace_secret = array(
"/SECRET: 1/",
"/PASS: [a-f0-9]{128}/",
);
global $wpdb;
$select_sql = "SELECT comment_ID, comment_content FROM $wpdb->comments";
$results = $wpdb->get_results($select_sql);
if (!empty($results)) {
$regx_pattern = null;
$comment_approved = null;
foreach ($results as $r) {
if (!preg_match($regx_check_secret, $r->comment_content) && !preg_match($regx_check_open, $r->comment_content)) {
continue;
}
if (preg_match($regx_check_secret, $r->comment_content)) {
$comment_approved = '0';
$regx_pattern = $regx_replace_secret;
} else {
$comment_approved = '1';
$regx_pattern = $regx_replace_open;
}
$comment_content = preg_replace($regx_pattern, '', $r->comment_content);
$update_sql = "UPDATE $wpdb->comments SET comment_approved = %s, comment_content = %s WHERE comment_ID = %d";
$wpdb->query($wpdb->prepare($update_sql, $comment_approved, $comment_content, $r->comment_ID));
$replaced++;
?>
<div>
<p>置換しました:</p>
<p><strong>(置換前):</strong><?php echo esc_html($r->comment_content) ?></p>
<p><strong>(置換後):</strong><?php echo esc_html($comment_content) ?></p>
<?php if ($comment_approved == '0') : ?>
<p><strong>このコメントは元は非公開だったので「承認待ち」にしておきました。</strong></p>
<?php endif; ?>
</div>
<hr />
<?php
}
}
?>
<p><strong><?php echo number_format($replaced) ?>件</strong>置換しました。このファイルは消しておいて下さい。</p>
<?php
}
?>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.