0

我的 wordpress 主题中有这段代码,它给了我 2 个通知

我不是 100% 确定如何解决它。我尝试过使用isset(),但它对我不起作用并且不断收到不同的错误。

$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
$array = array('template-homepage1.php', 'template-homepage2.php');
4

4 回答 4

2

你也可以试试。

 if(isset($_GET['post']))
   {  
   $post_id = $_GET['post'];
    }
 if(isset($_POST['post_ID']))  
    {
   $post_id =  $_POST['post_ID'] ;
    }
于 2013-05-23T12:16:26.480 回答
0

您需要先初始化变量或使用 empty() 或 isset() 检查 php 忽略通知

$post_id = '';$template_file='';
$post_id = (!empty($_GET['post']) ? $_GET['post'] : $_POST['post_ID']) ;

$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);
$array = array('template-homepage1.php', 'template-homepage2.php');

或者尝试从 php.ini 中关闭 php 通知

于 2013-05-23T12:15:10.050 回答
0

您可以尝试使用isset()检查$_GET变量和if else条件是否在需要的地方分配值

if(isset($_GET['post']) 
{
    $post_id = $_GET['post'];
} else {
    if(isset($_POST['post_ID']) 
    { 
         $post_id = $_POST['post_ID'];
    } else {
         $post_id = '';
    }
}
于 2013-05-23T12:17:16.577 回答
0
$post_id = isset($_GET['post']) ? $_GET['post'] : isset($_POST['post_ID']) ? $_POST['post_ID'] : 0 ;

但以这种方式使用 if 可能更具可读性

$post_id = 0;

if(isset($_GET['post'])) $post_id = $_GET['post'];
else if(isset($_POST['post_ID']) $post_id = $_POST['post_ID'];
于 2013-05-23T12:17:52.360 回答