在单个函数中组合多个条件标记

时间:2017-06-02 11:18:21

标签: php wordpress function woocommerce

我想在我的网站上显示不同的标题。基于用户或页面。 目前,我使用以下代码:

 <?php if( isset( $_GET['action']) && $_GET['action'] == "register" or  isset( $_GET['action']) && $_GET['action'] == "login"  or !is_user_logged_in() ) : ?>

如果用户在登录/注册页面上或未登录,则显示另一个标题。 对于未来,我想从WordPress / WooCommerce中添加更多条件标签。例如:is_cart,is_checkout,...

有没有办法将所有这些功能组合到functions.php中的单个函数中,以便在网站的不同区域使用它?并在一个功能中保持所有这些?

我有这样的想法:

is_simple_header()

2 个答案:

答案 0 :(得分:1)

只需编写你的功能..也许是这样的:

function is_page_type($type) {
    switch($type) {
       case 'simple':
           return isset( $_GET['action']) && $_GET['action'] == "register" or  isset( $_GET['action']) && $_GET['action'] == "login"  or !is_user_logged_in();
           break;
    }
    return false;
}

答案 1 :(得分:1)

您可以创建该函数,并使用bool值作为响应:

function is_simple_header () {
  $ret = false;
  if (isset($_GET['action']) && $_GET['action'] == "register") $ret = true;
  if (isset($_GET['action']) && $_GET['action'] == "login") $ret = true;
  if (!is_user_logged_in()) $ret = true;
  return $ret;
}

如果你只使用$ _GET ['action'],你可以优化这些函数切换到switch()函数。如果您需要新条件,只需要添加更多条件。

您的支票现在看起来像这样:

<?php if(is_simple_header()) : ?>