瀏覽代碼

Fix everything and tidy up

master
Adrian Short 9 年之前
父節點
當前提交
893495c3ca
共有 1 個檔案被更改,包括 32 行新增26 行删除
  1. +32
    -26
      metaupdater.php

+ 32
- 26
metaupdater.php 查看文件

@@ -33,65 +33,70 @@ function as_metaupdater_page() {

<?php
if ( 'POST' == $_SERVER['REQUEST_METHOD'] ) {
foreach( explode( PHP_EOL, $_POST['data'] ) as $row ) {
$data[] = str_getcsv( $row );
foreach( explode( PHP_EOL, stripslashes( $_POST['data'] ) ) as $row ) {
$data[] = str_getcsv( $row, ",", '"' );
}
echo "<pre>";
print_r( $data );
echo "</pre>";

$header_row = array_shift( $data );
$search_field = $header_row[0];
$replace_field = $header_row[1];
// Get header row
list( $search_field, $replace_field ) = array_shift( $data );

print_r( $header_row );
print_r( $data );

echo "Search: $search_field, replace: $replace_field";

echo "<h3>Results</h3>";

$success = 0;
$not_found = [];

foreach( $data as $row ) {

list( $key, $value ) = $row;

if ( $key == '' ) continue; // skip blank lines

$args = array(
'meta_key' => $search_field,
'post_type' => 'site'
);

if ( is_string( $row[0] ) ) {
$args['meta_value'] = $row[0];
} elseif ( is_numeric( $row[0] ) ) {
$args['meta_value_num'] = $row[0];
}
// if ( is_string( $key ) ) {
$args['meta_value'] = $key;
// } elseif ( is_numeric( $key ) ) {
// $args['meta_value_num'] = $key;
// }

echo "<p>";
print_r( $args );

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo get_the_title();

if ( $_POST['dry_run'] != '1' ) {
echo "Updating meta for real";
if ( update_post_meta( get_the_ID(), $replace_field, $row[1] ) ) {
if ( update_post_meta( get_the_ID(), $replace_field, trim( $value ) ) === true ) {
echo "<pre>";
print_r( $args );
echo sprintf( "ID: %d<br>%s: %s<br>Title: %s<br>%s: %s", get_the_ID(), $search_field, $key, get_the_title(), $replace_field, $value );
$success++;
}
}

}
} else {
$not_found[]= $key;
echo "No results<br>";
}

}

echo "<h3>Saved $success terms.</h3>";
echo "<h3>Updated $success custom fields OK.</h3><hr>";

echo "<h3>Errors</h3>";
if ( count( $not_found) > 0 ) {
echo "<p>Posts with the custom field <strong>$search_field</strong> with these values could not be found:</p>\n<ul>";
foreach( $not_found as $error ) {
echo "<li>$error</li>\n";
}
echo "</ul>";
} else {
echo "<p>None.</p>";
}
}
?>
</div>
@@ -105,6 +110,7 @@ function as_metaupdater_page() {
openlylocal_id,area_covered
2192,"All of London"
2191,"Greater Manchester"
99999,dummy
</textarea>
<p><input type="checkbox" name="dry_run" value="1" checked="checked" /> <label for="dry_run">Dry run - leave the database unchanged</label></p>
<p><input class="button-primary" type="submit" value="Update Custom Fields" /></p>


Loading…
取消
儲存