Wordpress incluye página personalizada

Estoy seguro de que esta es una pregunta sencilla. Pero, ¿cómo hago para que Wordpress al inicio ignore intentar cargar una página o publicación y, en su lugar, cargue mi página personalizada? ¿Cuándo en el proceso de arranque de Wordpress se decide qué página php se va a cargar?

Tendré la siguiente URL:

bt.local / wp / ads / 1

Y quisiera que se cargue una página php llamada ads.php y cargue el anuncio con adid = 1.

¿Cuál es la mejor forma de solucionar esto? (no hay una publicación llamada anuncios y no hay una página llamada anuncios).

¡Gracias!

KR

José

preguntado el 09 de enero de 11 a las 10:01

2 Respuestas

puede usar la acción template_redirect para eso - ejemplo:

add_action('template_redirect', 'my_template_loader');


function my_template_loader() {
    if( get_query_var('adid') ) {
       locate_template(array("your-custom-page.php"), true);
    }
}

editar:

además de eso, necesita una nueva regla de reescritura para agregar su URL personalizada; la información básica está aquí http://codex.wordpress.org/Function_Reference/WP_Rewrite

tu regla podría verse así:

$newrules['ads/(\d*)$'] = 'index.php?pagename=ads&adid=$matches[1]';

esto necesita una página de 'marcador de posición' llamada anuncios para ser configurada y, además de eso, debe registrar su nueva consulta var adid como eso:

add_filter('query_vars', 'add_adid_var');
function parameter_queryvars($qvars) {
    $qvars[] = ' adid';
    return $qvars;
}

Respondido el 12 de enero de 11 a las 09:01

¡Funciona de maravilla! Usé $ wp_query global en lugar de $ post para extraer el nombre de la página: $ wp_query-> get ('nombre de la página'). Luego localicé la plantilla y cargué mi archivo ads / index.php personalizado. ¡Muchas gracias! - José

Acabo de notar que mi $ wp_query no funcionaba al agregar una ID a la URL. Por ejemplo, bt.local / wp / ads / 1 - el 1 lo rompió. Si utilizo $ post como sugieres, no puedo encontrar el nombre de página "anuncios" en ninguna parte. ¿Cómo puedo hacer eso? - José

¡Sólo lo probé! ¡Funciona genial! Agregué una página llamada anuncios que recibe el adid gracias a la regla de reescritura. ¡Muchas gracias! - José

<?php include('custompage.php'); ?> ?

Respondido el 10 de enero de 11 a las 04:01

Gracias por tu respuesta. Pero la pregunta está más relacionada con el manejo de las variables y la forma en que wordpress procesa la carga de la página. Por ejemplo, si creé una página llamada Acerca de en WP Admin, vería la página Acerca de al ingresar la URL / WP / Acerca de. Pero si tengo una página personalizada que quiero que me llamen al ingresar URL / WP / Add, ¿cómo hago para que Wordpress encuentre esa? Si entro en una página no creada en Wordpress, dirá "Página no encontrada". Espero que aclare mi pregunta. ¡Que tengas una buena noche! - José

si existe en el directorio (s) en el que está buscando wordpress, aparecerá, incluso si no se creó con wordpress - tekknolagi

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.