为可互换的元盒调用多级数组[WordPress]
我正在WordPress中创建多个元框,我希望用户能够打开或关闭某些框 因此,他们在一个单独的元框中单击一个单选按钮,更新选项,然后会出现附加到该单选值的另一个元框 所以它基本上是从一个元框选择器框到两个元框选择器框和他们刚刚选择的新框 在我的代码中,您可以通过如下设置来创建元框。这是一个单选框,用户可以在其中选择其他元框来打开/关闭:为可互换的元盒调用多级数组[WordPress],wordpress,function,meta-boxes,Wordpress,Function,Meta Boxes,我正在WordPress中创建多个元框,我希望用户能够打开或关闭某些框 因此,他们在一个单独的元框中单击一个单选按钮,更新选项,然后会出现附加到该单选值的另一个元框 所以它基本上是从一个元框选择器框到两个元框选择器框和他们刚刚选择的新框 在我的代码中,您可以通过如下设置来创建元框。这是一个单选框,用户可以在其中选择其他元框来打开/关闭: // Create meta box that gives user ability to select additional meta box, whi
// Create meta box that gives user ability to select additional meta box,
which will then show upon saving the post
$meta_boxes[] = array(
'id' => 'meta_box_id',
'title' => 'Box title',
'pages' => array('page'),
'context' => 'side',
'priority' => 'low',
'fields' => array(
array(
'name' => 'Select:',
'id' => $prefix . 'meta_box_id',
'type' => 'radio',
'options' => array(
array('name' => 'Value 1', 'value' => 'value_one'),
array('name' => 'Value 2', 'value' => 'value_two'),
)
)
)
);
以下是WordPress中的外观:
这是另一个元框,一旦在上面的元框中选择,比如说选择了value_one,它将出现在post屏幕上:
// This meta box will only show if 'value_one' is selected from
the radio box above
$meta_boxes[] = array(
'id' => 'standard_lead',
'title' => 'Standard Lead',
'pages' => array('page'),
'context' => 'normal',
'priority' => 'high',
'lead' => 'value_one',
'fields' => array(
array(
'type' => 'text',
'id' => $prefix . 'standard_title',
'name' => 'Lead Title',
'desc' => 'The title of your Standard Lead',
'width' => '100'
),
array(
'type' => 'textarea',
'id' => $prefix . 'standard_content',
'name' => 'Lead Content',
'desc' => 'The content of your Standard Lead (you can use HTML)',
'width' => '100'
)
)
);
该代码的重要部分是:
'lead' => 'value_one',
我的计划是让上面的元框代码中的['lead']值与无线电元框中的['value']值匹配,这样它们就可以连接起来,然后用IF语句进行测试,确保它们等于相同的东西,然后仅当它们都等于value\u one时才显示
下面的功能实际上是将元框添加到WordPress中。在该函数中,我尝试创建此IF语句以将这两个语句匹配在一起:
if($this->_meta_box['value'] == $this->_meta_box['lead'])
…但它不起作用,我不确定如何定位['value'],因为它嵌套在多个数组中,或者我认为这是个问题
以下是完整的功能:
function add_meta_boxes()
{
$this->_meta_box['context'] = empty($this->_meta_box['context']) ? 'normal' : $this->_meta_box['context'];
$this->_meta_box['priority'] = empty($this->_meta_box['priority']) ? 'high' : $this->_meta_box['priority'];
foreach($this->_meta_box['pages'] as $page)
{
if($this->_meta_box['value'] == $this->_meta_box['lead'])
{
// adds meta box to WP
add_meta_box($this->_meta_box['id'], $this->_meta_box['title'], array(&$this, 'show_meta_boxes'), $page, $this->_meta_box['context'], $this->_meta_box['priority']);
}
}
}
希望我能很好地解释问题所在。我环顾四周,尝试过破解一些东西,但我不确定这是否是我自己能解决的问题。在这方面的任何投入,或朝着正确的方向推动,都将是巨大的帮助。谢谢大家! “lead”参数是否在add_meta_box方法中实际可用?如果您将$this->\u meta\u框变为dump;它真的显示了lead参数吗?@DaleSattler是的,“lead”在这里起作用,这是我无法使用的['value']参数。