是否仅在某些首页上执行操作?

时间:2016-10-08 作者:sarcastasaur

我正在创建一个插件,允许用户在他们选择的指定页面或帖子上插入特定代码。我尝试过这样做:

function asdf() {

    $siteURL = get_site_url() . \'/\';
    $pages = get_pages();

     foreach ($pages as $page ) {

         $pageTitle = get_page_link( $page->ID );

       if ( $siteURL === $pageTitle ) {
          echo "this is the correct page" . "<br>";
       }

       else {
          echo "this is the wrong page". "<br>";
       }
    }
}

add_action(\'wp_head\', \'asdf\');
如果运行此代码,您将看到它对所有页面的处理都是相同的,不同页面的结果不会有任何区别。然而,我试图让我的函数唯一地处理每个页面,并根据每个页面标题给出不同的结果。

提前谢谢。

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

要测试您是否在特定页面上,只需像这样测试标识符:

add_action("wp_head", function () {

    $idPageToTest = 32867;


    if (    isset($GLOBALS["post"])
        &&  ($GLOBALS["post"]->ID === $idPageToTest)
    ) {
        echo "We are on page $idPageToTest.";
    }


}

相关推荐

致命错误:未捕获错误:无法将WP_ERROR类型的对象用作/../plugins/rm-payment.php中的数组

我使用2个WordPress站点、1个WordPress站点到2个WordPress站点的远程支付系统。第一个是主网站;第二个网站的工作方式类似于处理贝宝支付的商户网站。我们将第一个网站的用户订单详细信息提取到第二个网站,以处理贝宝付款。但在获取第二个网站的网页时出现错误,但请记住,如果重新加载它一次,问题就解决了致命错误:未捕获错误:无法将WP\\u error类型的对象用作/中的数组/插件/rm支付。php:第231行 $response = wp_remote_post( $remote_url,