Crear página de WordPress que redirige a otra URL


Quería crear una nueva página de WordPress que sea en realidad un enlace a otro sitio. El objetivo es que la página se muestre en una lista de mis páginas, pero en realidad envíe al usuario web a la URL de destino.

Por ejemplo, digamos que quiero incluir una página que indique "Mis fotos" pero que en realidad las redirija a Flickr.

Supongo que una forma de lograr esto es mediante el uso de una página de plantilla personalizada con una instrucción de redirección en PHP, pero desafortunadamente soy un novato en PHP y no lo soy familiarizado con la manera de lograr esto...

Author: Dscoduc, 2009-11-09

7 answers

Puede lograr esto de dos maneras, las cuales deben hacerse a través de la edición de sus archivos de plantilla.

El primero es simplemente agregar un enlace html a su navegación donde quiera que se muestre.

La segunda (y mi conjetura, la que estás buscando) es crear una nueva plantilla de página, lo cual no es demasiado difícil si tienes la capacidad de crear una nueva .archivo php en su directorio de tema / plantilla. Algo como el siguiente código debería hacer:

<?php /*  
Template Name: Page Redirect
*/ 

header('Location: http://www.nameofnewsite.com');
exit();

?>

Donde el el nombre de la plantilla es lo que quieras establecer también y la url en la función de encabezado es la nueva url a la que quieres dirigir a un usuario. Después de modificar el código anterior para satisfacer sus necesidades, guárdelo en un archivo php en su carpeta de tema activo en el nombre de la plantilla. Por lo tanto, si deja el nombre de su plantilla "Page Redirect" nombre el archivo php page-redirect.php.

Después de que se haya guardado, inicie sesión en su backend de WordPress y cree una nueva página. Puede agregar un título y contenido al cuerpo si lo desea al igual que, pero lo importante a tener en cuenta es que en el lado derecho, debe haber una opción desplegable para que usted elija qué plantilla de página a utilizar, con el valor predeterminado que muestra primero. En esa lista desplegable, debe haber el nombre del nuevo archivo de plantilla a usar. Seleccione la nueva plantilla, publique la página, y debe ser dorado.

También puede hacer esto dinámicamente utilizando la sección Campos personalizados debajo del editor de cuerpo. Si estás interesado, házmelo saber y puedo pegar el código para ese tipo en una nueva respuesta.

 34
Author: Schoffelman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-19 14:45:54

He encontrado que estos problemas a menudo se resuelven mejor en la capa del servidor. ¿Tiene acceso a un .archivo htaccess donde podría colocar una regla de redirección? En caso afirmativo:

RedirectPermanent /path/to/page http://uri.com

Esta redirección también mostrará una respuesta "301 Movido Permanentemente" para indicar que la página de Flickr (por ejemplo) es el URI permanente de la página antigua.

Si esto no es posible, puede crear una plantilla de página personalizada para cada página en cuestión, y agregar el siguiente código PHP a la parte superior de la página plantilla (en realidad, esto es todo lo que necesita en la plantilla:

header('Location: http://uri.com, true, 301');

Más información sobre los encabezados PHP .

 11
Author: Jason Leveille,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-09 03:08:18

Alternativamente, utilice un filtro.

Cree una página vacía en su blog de WordPress, con el nombre apropiado para lo que necesita que sea. Toma nota del post_id. Luego crea un filtro que altera su enlace permanente.

add_filter('get_the_permalink','my_permalink_redirect');
function my_permalink_redirect($permalink) {
    global $post;
    if ($post->ID == your_post_id_here) {
        $permalink = 'http://new-url.com/pagename';
    }
    return $permalink;
}

De esta manera la url se mostrará correctamente en la página no se requieren redirecciones divertidas.

Si necesita hacer esto mucho, piense en usar los campos postmeta personalizados para definir un valor postmeta para "offsite_url" o algo así, entonces puede crear pages según sea necesario, ingrese el valor "offsite_url" y luego use un filtro como el anterior en lugar de verificar el post_id que verifique para ver si tiene el postmeta requerido y modifique el enlace permanente según sea necesario.

 7
Author: Gipetto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-10 06:23:40

No estoy familiarizado con las plantillas de Wordpress, pero estoy asumiendo que los encabezados son enviados al navegador por WP antes de que su plantilla se cargue. Debido a eso, el método de redirección común de:

header("Location: new_url");

No funcionará. A menos que haya una manera de forzar el envío de encabezados a través de una plantilla antes de que WP haga nada, necesitarás usar algo de Javascript como este:

<script language="javascript" type="text/javascript">
document.location = "new_url";
</script>

Pon eso en la sección y se ejecutará cuando se cargue la página. Este método no será instantáneo, y tampoco funcionará para personas con Javascript deshabilitado.

 3
Author: BraedenP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-09 02:54:57

Utilice el plugin" raw " https://wordpress.org/plugins/raw-html / Entonces es tan simple como:

[raw]
<script>
window.location = "http://www.site.com/new_location";
</script>
[/raw]
 1
Author: Jeroenv3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-02 07:29:46

Hay 3 maneras de hacer esto:

  1. Cambiando su código 404.php.
  2. Mediante el uso de plugins de wordpress.
  3. Editando su archivo .htaccess.

Tutorial completo dado en http://bornvirtual.com/wordpress/redirect-404-error-in-wordpress/906 /

 0
Author: Mazhar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-05 10:51:39

Encontré un plugin que me ayudó a hacer esto en cuestión de segundos sin editar el código:

Https://wordpress.org/plugins/quick-pagepost-redirect-plugin/

Lo encontré aquí: http://premium.wpmudev.org/blog/wordpress-link-title-external-url /

 0
Author: Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-19 16:38:56