私はテーマ/プラグインを変更しました。投稿内容にはまだショートコードが表示されています。
非表示にするにはいくつかのヒントがありますが、コンテンツ機能を使用するたびに、ショートコードが再び表示されます。また、私のショートコードは[theshortcode id="34877"]
、[theshort size="large" "tiny"]
などの「拡張型」なので、データベースから削除するためのヒントはまったく機能しません。
試す前にデータベースをバックアップしてください
現在のテーマで、functions.php
ファイルを開き、以下のコードを追加します。 theshortcodeyouhate
では、取り除きたいショートコードを知らせてください。拡張型でもうまく動作することに注意してください。
このコードを追加したら、F5キーを押すと完了です。
add_action ('init','remove_shortcode_from_db'); //you can choose any other actions such wp_head etc
function remove_shortcode_from_db($shortcode = 'theshortcodeyouhate') {
global $wpdb;
$posts = $wpdb->get_results("SELECT ID,post_title,post_content FROM
$wpdb->posts");
$regex =
'/\[(\[?)('.$shortcode.')\b([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([
^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)/s';
foreach($posts as $post) {
$final = preg_replace($regex,'',$post->post_content);
$change = $wpdb->update( $wpdb->posts, array('post_content' =>
$final), array('ID' => $post->ID));
}
}
wp-hackersメーリングリストのおかげで