无法在wordpress

时间:2016-01-27 07:22:06

标签: php html wordpress

我正在定制一个wordpress插件,用于弹出电子邮件订阅。当用户提交电子邮件时,他会收到一封确认电子邮件,其中iam将自定义html发送给他。我的网站上有五个不同的页面,每个页面都有弹出窗口。我正在做的是,我想得到我的页面的名称,而不是根据我想在电子邮件中发送html。我为其他插件做了完全相同的事情并且它工作但是在这个弹出插件中我无法从调用它的位置获取页面名称。 我尝试过但是失败了。

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

刚试过这个

$slug = basename(get_permalink()); 
if($slug=="page1") and so on

3 个答案:

答案 0 :(得分:0)

在这里,你需要得到title,因为

$post = get_post( $post );

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

希望它有所帮助。

答案 1 :(得分:0)

最好的方法是使用get_queried_object。它检索当前查询的对象 - 页面,帖子,分类法,等等......

您可以尝试使用此代码,它适用于我:

$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;
}

答案 2 :(得分:0)

请尝试使用此:

$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;  
}