Puxando Código HTML WordPress em ASP Clássico
Puxando Código HTML WordPress em ASP Clássico
Puxando Código HTML WordPress em ASP Clássico
clssico
Este , de longe, a abordagem mais simples, mas que se liga a estrutura de
sada para o local WordPress. Eu usei isso quando eu estava substituindo um
site ASP clssico com uma nova, grande site WordPress, que foi construdo
em etapas ao longo de um perodo de tempo. I necessrio para mover
alguma administrao de dados em toda a WordPress, mas continuar a
mostrar os dados no site do ASP clssico.
Ao invs de duplicar os dados do WordPress atravs de algo clssico ASP
poderia acessar, optei por apenas tomar a sada HTML a partir do WordPress
e exibi-lo no site da Classic ASP. O site WordPress usa cdigos de acesso
para exibir tabelas de dados e formulrios de pesquisa para que os dados.
No WordPress, uma funo shortcode deve devolver o HTML para a pgina
como uma string, dado um conjunto de parmetros, por isso fcil de
apenas chamar a funo shortcode e pegar o HTML para retornar via AJAX.
O HTML, neste caso, tem um formulrio de pesquisa, e uma tabela de
dados. I necessrio para processar todos os parmetros de busca para
passar para WordPress, e exibir o HTML na pgina Classic ASP aps a
pesquisa. Toda a lgica de pesquisa e formatao real no site do
WordPress, em um plug-in personalizado.
Eis os bits interessantes do cdigo no meu plugin para WordPress; Eu deixei
para fora como o HTML foi gerado porque no importante para este post,
mas voc provavelmente pode imaginar a consulta de banco de dados de
costume, iterao para construir uma tabela de HTML, e formulrio de
pesquisa
// add the AJAX actions, for both anonymous and logged-in users
add_action('wp_ajax_awri-yeb-ext', 'ajaxYebExternal');
add_action('wp_ajax_nopriv_awri-yeb-ext', 'ajaxYebExternal');
/**
* run the YEB search from an external site,
* returning HTML for insertion into external website's pages
*
* NB: search terms will be found in $_POST per normal,
* just posted by AJAX instead
*/
function ajaxYebExternal() {
$baseURL = stripslashes($_GET['base']);
$search = new YebSearch();
$search->setBaseURL($baseURL);
$html = $search->replaceShortTag(array());
header('Content-type: text/html');
echo $html;
exit;
Agora, aqui est como eu puxei-o em toda a Classic ASP. Lembre-se que o
HTML inclui um formulrio de pesquisa, ento eu tenho que verificar a
existncia de parmetros de busca para passar para WordPress, juntamente
com a ao AJAX.
' enviar uma solicitao HTTP para novo site WordPress para fazer a
pesquisa l em dados atuais
Sub ShowRemoteYEB()
Dim xhr, post, url, baseURL
On Error Resume Next
Err.Clear
' URL base para todos os links em pginas, e a ao formulrio de
pesquisa
baseURL = "http://" & Request.ServerVariables("HTTP_HOST") &
Request.ServerVariables("SCRIPT_NAME")
' AJAX service URL
url = "http://example.com/wp-admin/admin-ajax.php"
' construir o pedido AJAX, dando a ao AJAX e nosso nome roteiro,
alm de quaisquer parmetros de busca
post = "action=awri-yeb-ext&base=" & Server.URLEncode(baseURL)
For Each i In Request.QueryString
post = post & "&" & Server.URLEncode(i) & "=" &
Server.URLEncode(Request.QueryString(i))
Next
Set xhr = Server.CreateObject("MSXML2.ServerXMLHTTP")
xhr.setTimeouts 60000, 60000, 60000, 180000
xhr.open "GET", url & "?" & post, False
xhr.setRequestHeader "Content-Type", "application/x-www-formurlencoded"
xhr.send
If Err.Number = 0 Then
Response.Write xhr.responseText
End If
Set xhr = Nothing
On Error GoTo 0
End Sub
Tudo o que era necessrio, em seguida, era uma cpia de scripts JavaScript
do formulrio e alguns CSS para estilizar o HTML para que ele combinava
com o resto do site do ASP clssico, at que todo o site finalmente
atravessaram a WordPress.
Xml
Xml
Xml
Xml
->
->
->
->
writeElement
writeElement
writeElement
writeElement
(
(
(
(
Se Err.Number = 0 Ento
Set xml = Server.CreateObject ( "MSXML2.DOMDocument" )
Se xml.loadXML (xhr.responseText) Em seguida,
Definir jobnodes = xml.documentElement.selectSingleNode ( "/
empregos" ) .childNodes
Se jobnodes.length = 0 Ento
Response.Write "<li> <strong> Nenhum registro encontrado. </
strong> </ li>" & vbCrLf
Mais
Para cada job Em jobnodes
title = job.selectSingleNode ( "./title" ) .text
location = job.selectSingleNode ( "./company" ) .text
Se Len (localizao)> 0 Ento
location = localizao & "/"
Fim Se
location = localizao & job.selectSingleNode
( "./location" ) .text
Se Len (localizao)> 0 Ento
title = title & ":" & localizao
Fim Se
Response.Write "<li> & raquo; <a href =" "" &
job.selectSingleNode ( "./url" ) .text & "" ">" _
& Server.HTMLEncode (ttulo) e "</a> </ li>" & vbCrLf
Next
Fim Se
Mais
Fim Se
Set xml = Nada
Fim Se
Definir xhr = Nada
No erro GoTo 0
End Sub