PHP, cURL post para fazer login no WordPress

Estou trabalhando em um projeto para um cliente que precisa de um login automático a partir de um clique no lin

Estou usando uma página de handshake para fazer isso com o seguinte código:

$username = "admin";
$password = "blog";
$url = "http://wordpressblogURL/";
$cookie = "cookie.txt";

$postdata = "log=" . $username . "&pwd=" . $password . "&wp-submit=Log%20In&redirect_to=" . $url . "blog/wordpress/wp-admin/&testcookie=1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "blog/wordpress/wp-login.php");

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "blog/wordpress/wp-login.php");

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;

exit;

Isso funciona bem. Isso me registra muito bem.

O problema é que acredito que as chaves do WordPress estão fora da UR

Para elaborar, minha página de handshake (que me conecta) está no diretório "blog" e meu aplicativo WordPress está no diretório "wordpress", que fica dentro do diretório "blog". O URL no navegador diz..blog/handshake.php. No entanto, ele possui a seção Admin do WordPress na janela do navegador. Os links de administração do WordPress agora não funcionam corretamente, porque o URL está no../blog quando ele precisa estar no diretório..blog/wordpress/wp-admin diretório.

Existe uma maneira deondulaçã para que o URL no navegador reflita a página real?

Devo usar o FSockOPen?

questionAnswers(4)

yourAnswerToTheQuestion