Criando um formulário de postagem fora do Admin

Estou mesclando o WordPress em um sistema existente e exigindo que nossos usuários possam fazer postagens para uma instalação WP multi-site. Eu tenho uma tabela de database que irá vincular nosso próprio membro a IDs de blog específicos e coisas, então não haverá necessidade de usuários / logins no que diz respeito ao WP.

O que eu realmente preciso saber é como executar certas funções WP fora do próprio WP – em um domínio de domínio completamente diferente (mas mesmo no servidor). Tentei simplesmente include o wp-load.php no nosso painel de administração existente, mas, assim que o faço, redireciona para o site principal – eu suponho porque os domínios não coincidem:

domain1.com e domain2.com estão ambos no mesmo servidor, domain1.com é a configuração do WP MU, no domain2.com em nossa própria área de administração Estou incluindo o wp-load.php e, assim que eu fizer isso, redireciona-me diretamente para a página inicial de domain1.com.

É mesmo preferível fazê-lo desta forma? Eu vi alguns exemplos em que as pessoas consultaram diretamente o database WP para inserir posts. mas se for esse o caso, tenho que me perguntar por que estou usando WP mesmo para este projeto ?! Estou pensando em usar a API WP XMLRPC, mas eu preciso de mais energia do que isso e não quero ativar realmente.

Solutions Collecting From Web of "Criando um formulário de postagem fora do Admin"

Ok, eu tenho quebrado, ao falsificar a variável $ _SERVER e predefinir algumas constantes, consegui impedir o redirecionamento após a inclusão do wp-load.php.

define('WP_USE_THEMES', false); define( 'DOMAIN_CURRENT_SITE', $siteRow['domain'] ); define( 'PATH_CURRENT_SITE', '/' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', $siteRow['wp_blog_id'] ); $_SERVER = array( "HTTP_HOST" => $siteRow['domain'], "SERVER_NAME" => $siteRow['domain'], "REQUEST_URI" => "/", "REQUEST_METHOD" => "GET" ); require_once WP_PATH.'wp-load.php'; switch_to_blog($siteRow['wp_blog_id']); 

$ siteRow contém detalhes sobre o site alvo. Nota : Isso não pode estar dentro de uma function devido a restrições variables ​​globais.

Oi, eu não sou um hacker e não fui programador e consegui que isso funcionasse rapidamente, mas acho que tive sorte.

Eu assumi que os comandos “definir” eram o que estava no meu painel de painel multisite e eu adicionei o código $ _server ao topo do meu script wp_insert_post e funcionou. Não usei o seguinte:

 define('WP_USE_THEMES', false); 

Usei o seguinte para selecionar o blog, embora, como era o blog padrão, talvez não fosse necessário:

 global $switched; switch_to_blog(1); 

Ou devo colocar as declarações “definir” no script?

Felicidades

Jack