Como Haibor tem algum conceito de controle de ID e gosta de coisas limpas e simples, estou muito frustrado com a função de salvamento automático de rascunhos da nova versão do WordPress. Isso causa muito desperdício de IDs de log e torna os IDs de log descontínuos. livre-se desta função! !
Deixe-me explicar a situação primeiro: a descontinuidade do ID é causada principalmente por três funções. Uma é a função de salvamento automático Auto-Save, a segunda é a versão histórica Post Revisions e a terceira é a função de rascunho automático Auto-Draft! Baseado em diferentes versões do wordpress, as soluções são diferentes! Selecione a solução correspondente!
Versões anteriores ao wordpress 3.1 (excluindo 3.1):
1. Abra o arquivo wp-config.php e adicione o seguinte código na frente de "$table_prefix = 'wp_';":
define('WP_POST_REVISÕES', falso);
define('AUTOSAVE_INTERVAL', falso);
2. Encontre e abra os dois arquivos wp-adminpost-new.php e wp-adminpost.php e comente ou exclua "wp_enqueue_script('autosave');".
//wp_enqueue_script('autosave');
3. Encontre e abra o arquivo wp-adminincludespost.php, encontre "if ($create_in_db) {" e adicione a seguinte linha antes dele:
$create_in_db = falso;
WordPress 3.1 e versões posteriores (incluindo 3.1):
Desde a versão 3.1, o programa fez alterações na função de rascunho automático. A terceira etapa do método acima causará um aviso de que não há permissão de operação ao publicar artigos em segundo plano!
Em primeiro lugar, devemos seguir as etapas 1 e 2 do método acima para realizar a desativação da função Auto-Save e da função Post Revisions da versão histórica. A seguir, vamos tentar lidar com a desativação da função Auto-Draft!
Como a terceira etapa do método acima é inválida, você não pode mais adicionar o código $create_in_db = false; Neste momento, a função de publicação do artigo é normal, mas desde que você clique em "Adicionar Novo Artigo", não importa se. você edita o artigo ou não, desde que não clique em Salvar no final ou clique em Salvar como rascunho (como fechar diretamente a página de edição), o programa adicionará automaticamente um log de rascunho automático invisível por padrão, com o título. "Auto-Draft" e o status "auto-draft", e só pode usar phpmyadmin para extrair dados do banco de dados Excluir! Portanto, se você não tem uma boa ideia para um blog, não clique para adicionar um novo artigo facilmente!
Duas soluções bastante perfeitas são fornecidas abaixo. O código básico vem de uma pasta chamada "Pendente" no computador. A fonte não foi encontrada. Obrigado à parte, à Internet e ao autor original! Aqui vou organizar e melhorar e compartilhar com todos. Neste ponto, usuários que não possuem controle de ID podem pular diretamente para os comentários abaixo haha! !
Nota: O número de linhas mencionado abaixo é baseado na versão WordPress 3.2.
Opção 1: Altere o rascunho automático invisível para um rascunho de log de rascunho visível.
Referindo-se à etapa 3 acima, encontre e abra o arquivo wp-adminincludespost.php, encontre "if ($create_in_db) {" e procure por aproximadamente 423 linhas:
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-rascunho' ) );
Altere o código acima para:
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'rascunho' ) );
Dica: Esta solução não impede a criação automática de rascunhos ao clicar em “Adicionar Novo Artigo”, mas o que é criado neste momento é um log de rascunho que pode ser visto na lista de artigos, e você pode clicar para editar! Claro, se você clicar várias vezes para adicionar um novo artigo, vários logs de rascunho serão gerados, o que não é muito legal, haha!
Opção 2: O princípio é obter o rascunho automático mais antigo e usá-lo como o artigo atual. Isso pode manter a continuidade dos IDs do artigo com base na função de rascunho automático original e remover a função de exclusão de rascunhos automáticos de 7 dias atrás.
Ainda encontre e abra o arquivo wp-adminincludespost.php, encontre "if ($create_in_db) {" e procure pelas linhas 418 a 427:
if ($create_in_db) {
// Limpa rascunhos automáticos antigos com mais de 7 dias
$old_posts = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) > post_date" );//Excluir rascunhos automáticos de 7 dias atrás
foreach ((array) $old_posts as $delete )
wp_delete_post($delete, true); // Forçar exclusão
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-rascunho' ) );
$post = get_post( $post_id );
if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
set_post_format($post, get_option( 'default_post_format' ));
} outro {
Substitua por
if ($create_in_db) {
global $current_user;//Obtém o usuário de gerenciamento de login atual
$post = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_status = 'auto-draft' AND post_type = '$post_type' AND post_author = $current_user->ID ORDER BY ID ASC LIMIT 1" ); //Obter o primeiro rascunho automático
if ( !$postagem ) {
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-rascunho' ) );
$post = get_post( $post_id );
}
if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
set_post_format($post, get_option( 'default_post_format' ));
} outro {
O princípio da opção dois foi explicado acima. Por favor, leia com os comentários do código se precisar. A solução para a opção dois é que se o banco de dados já tiver um log de rascunho automático invisível, quando você clicar para adicionar um novo artigo, novos artigos não serão gerados automaticamente. Em vez de rascunhos automáticos invisíveis, o rascunho invisível mais antigo é chamado diretamente como o registro do banco de dados necessário para o artigo atual. Ao mesmo tempo, para evitar a descontinuidade do ID, a instrução de código "excluir rascunhos automáticos. mais de 7 dias" é excluído. !
Ok, por favor sente-se se precisar de calçados infantis. Se tiver sugestões ou dúvidas melhores, deixe uma mensagem para troca!
Este artigo é original de Nuodou. Por favor, não exclua o link para este artigo ao reimprimi-lo: http://www.nuodou.com/item/622.html .
Obrigado ao haibor pela sua contribuição