如何从子主题的unction.php调用子主题的某个页面上的函数,如‘Contact-us’

时间:2017-06-28 作者:inrsaurabh

我想在特定页面上调用函数,如函数中的“联系我们”。子主题的php。

我试过这个函数

 if( is_page(\'contact-us\')) {

    echo "hello check"; 
     //either in about us, or contact, or management page is in view
 } else {
     echo "Not working";
 }
但在每一页上都有其他部分。

 if(is_page(37)){
     echo "page 37";
 } else {  echo "Not working" }
获取其他部分

$current_url="http://".$_SERVER[\'HTTP_HOST\'].$_SERVER[\'REQUEST_URI\'];

  $contactUsId = url_to_postid( $current_url ); 

  if($contactUsId == \'37\'){

echo "hello";
}
但这是可行的,有谁能帮我知道为什么前两个函数会打印其他部分。

2 个回复
最合适的回答,由SO网友:DrewAPicture 整理而成

问题是你试图使用is_page(), 一个条件函数,仅用于在查询附近运行,为时过早。尝试在回调中运行代码,该回调1)仅在前端触发,2)在页面部分加载后触发。例如,wp_head.

function prefix_run_on_contact_us() {
    if( is_page(\'contact-us\')) {
        echo "hello check"; 
        //either in about us, or contact, or management page is in view
    } else {
        echo "Not working";
    }
}
add_action( \'wp_head\', \'prefix_run_on_contact_us\' );

SO网友:Sebastian Kurzynowski

当你尝试使用这个函数时,你使用了什么钩子?你想过吗?我一直都是这样:)在我看来,你已经有了最早的钩子,我测试了几个,但都太早了。

解决方案1:

add_action(\'parse_query\', function () {

if( is_page(\'contact-us\')) {

    echo "hello check";
    //either in about us, or contact, or management page is in view
} else {
    echo "Not working";
}});
解决方案2:

add_action(\'parse_query\', function () {

    if( \'contact-us\' == get_query_var(\'pagename\') ) {
        echo "hello check";
        //either in about us, or contact, or management page is in view
    } else {
        echo "Not working";
    }
});

结束

相关推荐

在Functions.php中正确地将首页的CSS-TEMPLATE_REDIRECT排队?

我想加载一些特定的css来更改WP首页/主页的主体元素的颜色。在我的主题函数文件中,以下代码似乎有效,但有人能告诉我它是否“正确”吗?//Adding and Encuing styles for Front Page add_action( \'template_redirect\', \'front_page_design\' ); function front_page_design(){ if ( is_front_page() || is_home())