Pregunta

No estoy seguro de cuál es la solución que aquí funcionaría mejor como una solución, pero lo que estoy buscando es simplemente una forma sencilla de introducir un dominio opcional a través de un METABOX en la pantalla de la página de edición y luego simplemente seleccione una plantilla de la página por defecto plantillas de WordPress usos.

Estoy asumiendo que debe haber una manera sencilla de lograr esto añadiendo manualmente un registro de nombre de A para el nuevo dominio y apuntando a la misma dirección IP del sitio web principal está utilizando y luego a través de un código permite que las peticiones a este nuevo dominio a cargar un ID específico puesto, mientras que utiliza la plantilla de página específica que haya seleccionado.

Me gustaría que la página sea accesible para ambos dominios y sólo el nuevo dominio utilizaría la plantilla definida.

¿Cómo puede hacerse esto?

actualización Supongo que la otra forma sería la primera configuración de una sola página para que pueda tener su propio subdominio mediante el uso de algunas de ellas construidas en el código utilizado para múltiples sitios wordpress? En otras palabras, si un subdominio personalizado podría ser asignado a un identificador específico posterior a continuación, un registro CNAME para este subdominio se podría establecer para el nuevo dominio ... No está seguro de la mejor manera de lograr esto.

¿Fue útil?

Solución

Este código le permitirá configurar un valor meta de encargo, y si el nombre de dominio (o subdominio si edita el código) coincide con ella, la consulta será cambiado para que coincida con ese puesto. La plantilla de página sólo será utilizada para esa solicitud, no para solicitudes a través de la URL "normal".

Esto no cambia enlaces en esa página:? En caso de que ir al sitio "normal" o estancia en el subdominio

¿Cómo resolver esto en el lado de DNS es probablemente un servidor falla pregunta .

define( 'WPSE4558_STANDARD_SERVER', 'www.example.com' );
define( 'WPSE4558_META_KEY', 'domainname' );

add_filter( 'request', 'wpse4558_request' );
function wpse4558_request( $query_vars )
{
    $query_vars['is_subdomain_request'] = false;
    if ( WPSE4558_STANDARD_SERVER != $_SERVER['SERVER_NAME'] ) {
        $query_vars['meta_key'] = WPSE4558_META_KEY;
        // This can also be just the subdomain, if you edit it
        $query_vars['meta_value'] = $_SERVER['SERVER_NAME'];
        $query_vars['is_subdomain_request'] = true;

    }
    return $query_vars;
}

add_action( 'parse_query', 'wpse4558_parse_query' );
function wpse4558_parse_query( &$wp_query )
{
    if ( $wp_query->get( 'is_subdomain_request' ) ) {
        $wp_query->is_home = false;
        $wp_query->is_page = true;
        $wp_query->is_singular = true;
    }
}

add_filter( 'page_template', 'wpse4558_page_template' );
function wpse4558_page_template( $template )
{
    global $wp_query;
    $id = $wp_query->get_queried_object_id();
    if( ! $wp_query->get( 'is_subdomain_request' ) && get_post_meta( $id, WPSE4558_META_KEY ) ) {
        // This is a page that has a subdomain attached, but the current request is not via that subdomain
        // So use the normal template hierarchy, ignore the page template
        $templates = array();
        $pagename = $wp_query->get_queried_object()->post_name;
        if ( $pagename ) {
            $templates[] = "page-$pagename.php";
        }
        if ( $id ) {
            $templates[] = "page-$id.php";
        }
        $templates[] = "page.php";
        $template = locate_template( $templates );
    }
    return $template;
}

Otros consejos

Actualización respuesta

De acuerdo, parece que usted quiere una opción en el panel de escritura que le permitirá componer un mensaje en el sitio A y, opcionalmente, también publicar ese puesto a sitio B. Suena como un proyecto interesante y debería ser posible utilizando WordPress y XMLRPC .

Aquí es un código de ejemplo . Al combinar el código de este artículo con una caja de meta personalizada, debe ser capaz de lograr su objetivo. Buena suerte!

Éstos son algunos más buenos recursos:

N.B. Para garantizar que las actualizaciones que realice en los mensajes están sindicados, es posible que también desea almacenar el post_id del puesto en el sitio remoto en un campo personalizado. Probablemente debería también implementa un retraso de unos pocos minutos antes de enviar el mensaje a distancia inicial (sé que inevitablemente hacer cambios inmediatamente después de la publicación de casi cualquier cosa, pero que puede ser yo).


respuesta original es continuación


o bien (i) .htaccess configuración con mod_rewrite para enmascarar el URL de una entrada, (ii) Distribuir sus mensajes a través de múltiples sitios por medio de RSS con wp_insert_post o (iii) crear una carpeta dentro de su tema llamado después de la redirección y añadir los siguientes archivos en él:

  • después de la redirección-meta.php - Crear un cuadro de meta llamada "Mensaje de redireccionamiento de URL" con un cuadro de entrada de texto que salvará a su mesa postmeta.

  • post-redirect.php - Crear una plantilla de tema llamado "Mensaje de redireccionamiento", que forma condicional (basado en HTTP de referencia) realiza una redirección 301 utilizando la dirección URL de destino guardado en el "Post redireccionamiento de URL" cuadro de meta en su página de entrada de edición. Esto le permitirá mostrar el post original en un marco en el nuevo dominio.

En función de sus requisitos indicados, parece que son las soluciones más simples, pero está lejos de ser claro que esta es su intención (por ejemplo, ¿qué significa " Me gustaría que la página sea accesible tanto para los dominios "media? ¿Son los dos sitios que se ejecutan WP? ¿Cuál es la relación comercial entre los dos sitios?). Sería de gran ayuda si usted explicó más claramente el resultado final que usted está tratando de lograr, y una lista de sus preocupaciones más importantes. Sea cual sea su respuesta es esta, si es posible, por favor, también explica "why".

El código para lograr esto no es complicado, pero antes de pasar por la molestia, por favor aclarar lo que estamos tratando de lograr.

Licenciado bajo: CC-BY-SA con atribución
scroll top