Ich habe ein Plugin, das Wordpress-Optionen verwendet - es speichert Daten für jede Seite und Post, markiert mit der ID, die ich am Front-End ziehen und benutzerdefinierte Daten anzeigen kann für diesen Beitrag oder diese Seite.Wordpress Optionen Tabelle Löschen aller Werte beim Speichern Teilmenge von Einträgen
Zum Beispiel kann ich benutzerdefinierte Daten für jeden der Beiträge 1-25, speichern Sie erfolgreich in Options.php, gehen Sie auf Seite 2, wo ich Post Einträge 26-50 zu sehen, und speichern Sie Daten für diese Einträge ... aber die Daten für 26-50 Speicher wischt die Daten, die ich nur auf Einträge gespeichert 1-25 und 51- x
Der Code Paginierung ich benutze ein benutzerdefinierter Code-Schnipsel:
$how_many_results = 25;
$post_args = array('numberposts' => -1, 'posts_per_page' => $how_many_results, 'orderby' => 'title', 'order' => 'ASC', 'paged' => $paged,'post_type' => 'post')
$posts_query = new WP_Query($post_args);
$mnposts = $posts_query->max_num_pages;
$big = 999999999999;
$posts_pagination = paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
'current' => max(1, $paged),
'total' => $mnposts,
'end_size' => 1,
'mid_size' => 1,
'prev_next' => True,
'prev_text' => __('Prev','cust_dataset'),
'next_text' => __('Next','cust_dataset'),
'type' => 'list'
));
echo (!isset($posts_pagination))?'<span>'.__('All posts displayed','cust_dataset').'</span>':$posts_pagination;
und das ist die HTML-Formatierung:
<form method="post" action="options.php">
<?php
settings_fields('cust_options_post');
$cust_posts = get_option('cust_settings_post');
$cust_name = 'cust_name_'.get_the_ID();
$cust_name_set = (isset($cust_posts[$cust_name]))?$cust_posts[$cust_name]:'';
$option .= '<input type="hidden" name="cust_settings_post['.get_permalink().']" id="cust_settings_post['.get_permalink().']" value="'.$red_url.'" />';
$option .= '<strong>' . get_the_title() . '</strong> (<em><a href="' . get_admin_url() . 'post.php?post=' . get_the_ID() . '&action=edit">edit</a></em>)';
$option .= '<br />' . get_permalink() . ' (<em><a href="' . get_permalink() . '">view</a></em>)';
$option .= '<input type="text" name="cust_settings_post['.$cust_name.']" id="cust_settings_post['.$cust_name.']" value="'.$cust_name_set.'" />';
?>
<?php echo $option; ?>
<input type="submit" />
</form>
Das Problem ist, dass die Paginierung nur 25 auf einmal zieht und Wordpress den gesamten Optionsblock auf jedem Formular erneut speichert, obwohl es eine Untermenge von nur 25 Einträgen ist. Es wäre kein Problem, wenn ich 100 Seiten hätte, aber ich führe es auf einer Seite mit mehr als 30.000 Posts aus ... und ich kann den Server nicht gleichzeitig mit der Verarbeitung von 30.000 Options-Datasets durcharbeiten.
Meine Frage ist: Wie kann ich eine Teilmenge der Daten zu options.php speichern und nicht den Rest der Daten löschen hatte ich zuvor gespeicherten dass nicht in der aktuellen Untergruppe ist?