2015-04-06 3 views
0

Я хочу изменить базу данных по умолчанию для пользовательских типов сообщений от wp_posts до wp_anything_else, мне нужно иметь уникальный идентификатор, который обрабатывается только определенными сообщениями. Например, если у меня есть блог типа post, он добавит его также в wp_posts, и я не хочу этого, он все испортит :( Есть ли способ изменить базу данных при создании пользовательского типа сообщений в functions.php или с любым плагином ?Изменение базы данных sql wordpress для пользовательских типов сообщений

* код из functions.php

add_filter('body_class','bp_conditional_ie_classes'); 
 
/*custom post types*/ 
 
add_action('init', 'blogs_register'); 
 
    
 
function blogs_register() { 
 
    
 
    $labels = array(
 
     'name' => _x('My Blog', 'post type general name'), 
 
     'singular_name' => _x('Blog Item', 'post type singular name'), 
 
     'add_new' => _x('Add New', 'Blog item'), 
 
     'add_new_item' => __('Add New Blog Item'), 
 
     'edit_item' => __('Edit Blog Item'), 
 
     'new_item' => __('New Blog Item'), 
 
     'view_item' => __('View Blog Item'), 
 
     'search_items' => __('Search Blog'), 
 
     'not_found' => __('Nothing found'), 
 
     'not_found_in_trash' => __('Nothing found in Trash'), 
 
     'parent_item_colon' => '' 
 
    ); 
 
    
 
    $args = array(
 
     'labels' => $labels, 
 
     'public' => true, 
 
     'publicly_queryable' => true, 
 
     'show_ui' => true, 
 
     'query_var' => true, 
 
     'menu_icon' => get_stylesheet_directory_uri() . '/admin.png', 
 
     'rewrite' => true, 
 
     'capability_type' => 'post', 
 
     'hierarchical' => false, 
 
     'menu_position' => null, 
 
     'supports' => array('title','editor','thumbnail') 
 
    ); 
 
    
 
    register_post_type('blogs' , $args); 
 
}

** сниппет не работают, но это был единственный способ, это позволяет мне добавить код, не портя его

+1

Можете ли вы пояснить, «все испортили»? –

+0

Для того, чтобы другие вещи могли работать, мне нужно сохранить все идентификаторы почты в последовательности (сообщения должны быть в ID от 50 до 150 и просто сообщения) –

+0

Похоже, что что-то не так в другом месте вашего приложения. Я бы остановился на том, почему вам нужны отдельные таблицы и исправлять эту проблему. –

ответ

0

Сообщения WordPress (сообщения, страницы, пользовательские сообщения, ...) предназначены для представления одного объекта вашего сайта. Из-за этой абстракции WordPress использует одну таблицу для всех своих типов контента, поэтому во время среднего запроса на сайт WP должен искать запрошенный сайт только в одной таблице.

Наличие нескольких типов сообщений в нескольких таблицах потребует другого поведения поиска в ядре WP. Вот почему вам очень сложно.

Хотя я уверен, что отдельная таблица БД не нужна для «элементов блога», проблема, которую я вижу в таблице wp_posts, заключается в том, что они не разрешают m:n-отношения между ее записями. В таком случае вы можете подумать об использовании комбинации пользовательских сообщений и пользовательских таксономий.

Редактировать: Конечно, вы можете написать или использовать (если есть) плагин, который обрабатывает все необходимое для управления и поддержки дополнительной таблицы. Но это, вероятно, никогда не будет интегрировано в WordPress, а также пользовательские типы сообщений.

Смежные вопросы