Estoy personalizando un complemento de wordpress que se utiliza para la suscripción de correos electrónicos emergentes. cuando el usuario envía un correo electrónico, recibe un correo electrónico de confirmación en el que iam le envía mi html personalizado. Tengo cinco páginas diferentes en mi sitio web y cada página tiene esa ventana emergente. lo que estoy haciendo es que quiero obtener el nombre de mi página que de acuerdo con eso quiero enviar html por correo electrónico. Hice exactamente lo mismo con otro complemento y funcionó, pero en este complemento emergente, no puedo obtener el nombre de la página desde donde se llama. He intentado seguir cosas pero no lo he conseguido.

global $post;      /* this worked perfect on other plugin */
$pagename = $post->post_name;
if($pagename=="page1")
{
 // html page1 //
}
else
{
// html page2 //
}

Intenté esto

$slug = basename(get_permalink()); 
if($slug=="page1") and so on
2
Ammar Ul Hassan 27 ene. 2016 a las 10:22

3 respuestas

La mejor respuesta

Aquí tienes, debes obtener title para esto, ya que

$post = get_post( $post );

$pagename = isset( $post->post_title ) ? $post->post_title : '';

Espero que ayude.

0
Let'sRefactor 27 ene. 2016 a las 07:29

Intenta usar esto:

$pagename = get_query_var('pagename');  
if ( !$pagename && $id > 0 ) {  
    // If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object  
    $post = $wp_query->get_queried_object();  
    $pagename = $post->post_name;  
}
0
Atif Tariq 27 ene. 2016 a las 07:38

La mejor forma es utilizar get_queried_object. Recupera el objeto consultado actualmente: página, publicación, taxonomía, lo que sea ...

Puedes probar este código, funciona para mí:

$qo = get_queried_object();
if ( 'page' !== $qo->post_type ) {
    //Here you can be sure, that you are in page query, so this is available
    $pagename = $qo->post_name;
}
0
pgk 27 ene. 2016 a las 07:36