Я понимаю, что «если я прав» каждый раз, когда используется add_option (someoption), он создает какой-то идентификатор в MySql Таблице.
Вот сценарий, в котором необходимо избежать создания дополнительные таблицы и запросы и использование собственных опций Wordpress для управления сортировкой, изменением, разбиением на страницы и запросами данных.
, поскольку в опциях используется длинный текст в таблице MySql, и он может хранить до 4 ГБ данных, однако на большинстве хостингов он ограничен 16 МБ, и для тех, кто не является техническим специалистом, очень трудно понять, что к чему.
Вот то, что я пытаюсь сделать:
$items = array();
$item_1_contents = array(...);
$item_1_inserted_option_id = add_option($item_1_contents);
// WP saves and inserts the option and I need to get this ID?
$items[] = $item_1_inserted_option_id;
// store the inserted option ID to items array
// another item
$item_2_contents = array(...);
$item_2_inserted_option_id = add_option($item_2_contents);
$items[] = $item_2_inserted_option_id;
// another item
$item_3_contents = array(...);
$item_3_inserted_option_id = add_option($item_3_contents);
$items[] = $item_3_inserted_option_id;
// at this stage i want to have the items array to look like
$items = array(x,x,x);
// x represents the saved option ID
// so I can save them in one single option where I can use to push more for update
$saved_items = update_option('items', $items);
// to extract and display
$get_items = get_option('items');
foreach($get_items as $it){
$actual_item = get option by its id
// the prepare actual item for html output
}
// Does this make any sense?
Плагин, который я разрабатываю, может использоваться для создания до 100 опций в месяц, поэтому в год может быть 1200 опций, и, учитывая, что мы находим способ получить опцию идентифицируйте и сохраните его в опции "items" следующим образом:
// items option will look like this
$items = array(232,322,12,21,32,2323,2332, 232,322,......);
// so in 10 years there could be 12000 option IDs in this array
// which will be sorted by DESC and queried 20 per page at a time
Все это, чтобы избежать повторного создания данных mysql, а также правильно использовать параметры, чтобы не исчерпать максимальное время ожидания?