Personalizando wp-activate.php

Alguém sabe como posso personalizar o wp-activate.php?

Ele envolve o conteúdo em

, no entanto, no meu tema, o wrapper principal é

Presumivelmente, eu poderia apenas classificar div#content.widecolumn para ser idêntico ao div#main . Mas eu tenho curiosidade se alguém sabe como personalizar este arquivo sem editá-lo.

Solutions Collecting From Web of "Personalizando wp-activate.php"

Você está certo, isso é muito difícil.

O que acabei de fazer foi criar dois novos modelos de página Registrar e ativar e criar duas novas páginas do WordPress usando esses modelos e, em seguida, usar um filtro no meu arquivo functions.php para modificar o comportamento wpmu_signup_user_notification .

Os usuários registrarão nesta nova página do Registro e serão enviados um e-mail para a nova página de Ativação.

Modelo de registro

No modelo de Registro, copiei o código do wp-signup.php e removi as seguintes linhas desde o início:

 require( dirname(__FILE__) . '/wp-load.php' ); require( './wp-blog-header.php' ); 

Eu também mudei

para se encheckboxr no modelo.

Eu também alterei o valor de action="< ?php echo network_site_url('wp-activate.php'); ?>" do formulário de action="< ?php echo network_site_url('wp-activate.php'); ?>" To action=""

Ativar modelo

No modelo de Ativação, copiei o código de wp-activate.php e removi as seguintes linhas desde o início:

 define( 'WP_INSTALLING', true ); /** Sets up the WordPress Environment. */ require( dirname(__FILE__) . '/wp-load.php' ); require( './wp-blog-header.php' ); 

Eu mudei

para se encheckboxr no modelo.

Novamente, mudei todas as ações de formulário para action=""

Functions.php

Eu copiei a function wpmu_signup_user_notification de wp-includes/ms-functions.php para o meu arquivo functions.php .

Renomou-o, então algo único: af_wpmu_signup_user_notification

Removido o seguinte:

 if ( !apply_filters('wpmu_signup_user_notification', $user, $user_email, $key, $meta) ) return false; 

Eu mudei a linha site_url( "wp-activate.php/?key=$key" ) para site_url( "activate/?key=$key" ) pois ativar é a slug da página da minha página Ativar.

Então eu apliquei como um filtro com o seguinte código:

 add_filter('wpmu_signup_user_notification', 'af_wpmu_signup_user_notification', 10, 4); 

Isso parece estar funcionando bem – posso modificar essas páginas à vontade sem afetar o núcleo. Embora isso também pareça um pouco complicado.

O principal problema aqui é: wp-activate.php inclui seu header.php mas não as functions.php . Você pode obter erros fatais se você usar funções em seu header que são definidas em suas functions.php .

Uso dois novos arquivos nos meus temas:

  • header-activate.php e
  • footer-activate.php

Quando wp-activate.php é chamado de constante WP_INSTALLING é definido como TRUE (sem motivo óbvio). Eu uso isso no meu header.php : eu incluo as functions.php e ligue para a minha function de configuração.

Início do meu header.php

 // on wp-activate.php this is FALSE if ( ! function_exists( 't5_setup' ) ) { require_once dirname( __FILE__ ) . '/functions.php'; t5_setup(); } if ( defined( 'WP_INSTALLING' ) and WP_INSTALLING ) { locate_template( 'header-activate.php', TRUE, TRUE ); return; } 

Então eu evito a execução do arquivo de header normal e uso um personalizado.

Meu header-activate.php

 < ?php # -*- coding: utf-8 -*- declare( encoding = 'UTF-8' ); ?> < !Doctype html>  < ?php body_class( ' ' ); ?>>  < ?php $current_title = wp_title( '|', FALSE, 'right' ); print empty ( $current_title ) ? get_bloginfo( 'name' ) : $current_title . get_bloginfo( 'name' ); ?>   < ?php wp_head(); ?>    

Como você pode ver, não uso nenhuma folha de estilos externa. Não é necessário. Mas a imagem de fundo personalizada ainda está ativa.

Eu faço o mesmo no meu footer.php :

Início do footer.php regular.php

 if ( defined( 'WP_INSTALLING' ) and WP_INSTALLING ) { locate_template( 'footer-activate.php', TRUE, TRUE ); return; } 

Complete footer-activate.php

 < ?php # -*- coding: utf-8 -*- declare( encoding = 'UTF-8' ); wp_footer(); 

Resultado

insira a descrição da imagem aqui


Todo o processo é uma forma de hackear. Tenho certeza de que existem melhores maneiras de lidar com isso.

Não se esqueça de mudar o retorno para falso em sua af_wpmu_signup_user_notification. Caso contrário, serão enviados dois e-mails ao usuário. Um com o link antigo e outro com o novo.

Eu fiz a página ativar o mesmo que o resto do site adicionando isso:

 require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php'); 

Eu só queria modificar um pouco do texto, então eu consegui filtrar o gettext usando este código para ser mu-plugins / my-functions.php. NÃO funcionará colocando isso em um plugin regular, mas você pode colocá-lo em functions.php do seu tema base.

 function rgbook_activate_page_action() { add_filter('ngettext', 'rgbook_activate_page_change_text' ); add_filter('gettext', 'rgbook_activate_page_change_text' ); } add_action( 'activate_header', 'rgbook_activate_page_action' ); function rgbook_activate_page_change_text( $text ) { $search = 'Log in or go back to the homepage.'; $replace = 'Click here to log in now.'; return str_ireplace($search, $replace, $text); }