Qual é a maneira correta de usar as funções do WordPress fora dos arquivos do WordPress?

52

Eu li cerca de 2 métodos para inicializar a função do WordPress fora dos arquivos do WordPress, para que possamos usar essas funções em qualquer página ou site fora do blog WordPress.

Qual desses dois métodos é o correto? Quais são os casos de uso para cada método se ambos estiverem corretos? Qual é a deferência entre usar um método ou outro?

Método 1:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-blog-header.php');
?>

Método 2:

<?php 
    define('WP_USE_THEMES', false);
    require('./wp-load.php');
?>
    
por alhoseany 27.03.2012 / 23:16
fonte

5 respostas

52

Há pouca diferença entre os arquivos. Quando você visualiza uma página do WordPress, o primeiro arquivo chamado é index.php . E é, essencialmente, o seu "Método 1:"

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require ('./wp-blog-header.php');

O arquivo de cabeçalho do blog (que enfileira o restante do WordPress) carrega wp-load.php diretamente e inicia o próprio WordPress. Aqui está a maior parte de wp-blog-header.php :

if ( !isset($wp_did_header) ) {

    $wp_did_header = true;

    require_once( dirname(__FILE__) . '/wp-load.php' );

    wp();

    require_once( ABSPATH . WPINC . '/template-loader.php' );

}

Portanto, a diferença entre seus dois métodos é ... o que é carregado.

O método 1 é exatamente o que o WordPress faz para se carregar (com exceção da desativação de temas). Então, se você precisar de todo do WordPress e quiser disparar todos os ganchos / ações padrão, siga esse caminho.

O método 2 é apenas mais um passo adiante. Ele carrega todo o WordPress, mas não chama wp() ou invoca o carregador de modelos (usado por temas). O método 2 será um pouco mais leve, mas deve oferecer a mesma funcionalidade.

    
por EAMann 28.03.2012 / 00:57
fonte
12

Método 2 da sua pergunta:

<?php 
define( 'WP_USE_THEMES', false ); // Don't load theme support functionality
require( './wp-load.php' );

wp-load.php é o acesso a todas as funções do WordPress, isso é tudo. A primeira linha diz ao WordPress para carregar não os arquivos do Tema; talvez os arquivos sejam necessários para seus requisitos e, em seguida, remova a linha.

    
por bueltge 27.03.2012 / 23:32
fonte
3

wp-blog-header.php irá anexar um status de cabeçalho, ele retornará um código de status http 404

wp-load.php não irá

Útil para observar o uso do ajax ao verificar o código de status http

    
por RayLau135 11.04.2016 / 12:42
fonte
2

Às vezes, carregar o functions.php do tema pode causar alguns problemas. Estava quebrando o html da minha outra página. Então foi o que eu fiz e resolvi meu problema:

define('STYLESHEETPATH', '');
define('TEMPLATEPATH', '');
require_once(RAIZ_WORDPRESS."/wp-load.php");
    
por Wellington Lorindo 27.10.2015 / 12:19
fonte
0

@ ninja08

Podemos usar a extensão xDebug para analisar um script.

ative apenas ;xdebug.profiler_enable = 1 no seu arquivo php.ini removendo ; do primeiro da linha e depois disso reinicie o servidor apache e execute o seu site wordpress ... agora um arquivo criado no diretório tmp do seu servidor xampp .. abra este arquivo com Aplicação WincachGrind .

agora você pode ver um mapa do seu script

    
por Mostafa 14.12.2015 / 06:08
fonte