从主题选项中获取数据,并将其用于自定义帖子类型的元选项字段

时间:2012-10-03 作者:user1666698

我想从我的主题选项中获取数据,并在自定义帖子类型的元选项字段中使用它们。我知道如何抓取主题选项数据并将其显示在首页上,但不知道如何抓取用于后端使用。我想使用其中一个主题选项文本字段中的数据,并将其放入我的metabox文本字段中。

实际上,在我的元框文本字段上有两个复选框,在该文本字段上方还有两个元框文本字段。在我的主题选项中还有两个文本字段,我必须在其中放置一些html和javascript代码。下面是我的代码:

元框文本字段和复选框:

<input type="textarea" id="c" value="Your Name" />
<input type="textarea" id="d" value="My Name" />
<input type="checkbox" id="a" />
<input type="checkbox" id="b" />
<input type="textarea" id="e" />
主题选项文本字段:

<input type="textarea" id="f"  />
<input type="textarea" id="g"  />
我必须将javascript放在主题选项文本字段中,有点像这样:

<div>
<script type=text/javascript> name: \'My Name is/\', name2: \'Your name is/\', </script> 
</div>
现在真正的担忧来了。我希望当我单击id为“a”的复选框时,id为“f”的主题选项文本字段中的代码将被放入id为“e”的元框文本字段中,但只需稍加修改。我需要的修改是,首先将id为“c”和“d”的元框文本字段中的数据添加到从id为“f”的主题选项文本字段中获取的代码中,这样一来,id为“c”的元框文本字段的值将添加到“名称:我的名称为/(此处将是id为“c”的文本字段的值)”,id为“d”的元框文本字段的值为添加到“名称2:您的名称是/(此处将是id为“d”的文本字段的值”)。

我还将jquery代码用于这些复选框行为。这是我的jQuery代码。

$(function () {
$(\'#a, #b\').change(function () {
    var $a = $(\'#a\'), $b = $(\'#b\'), $c = $(\'#c\');
    if (this.id == \'a\' && this.checked) {
       $c.val(\'Hello World!\');
       $b.prop(\'checked\', false);
    } else if (this.id == \'b\' && this.checked) {
       $c.val(\'Not hello World!\'); 
       $a.prop(\'checked\', false);
    } else {
       $c.val(\'\');
    }
});
});
​很明显,这个jQuery代码中存在缺陷,因为我不想要这些值,例如id为“c”的metabox文本字段的Hello world或Not Hello world。我想要前面解释的那个字段的值。请在这方面帮助我。我非常沮丧。

2 个回复
SO网友:Mateusz Hajdziony

您可以使用get_option 后端也有功能。关于如何将选项值传递给脚本,有几种可能性:

使用wp_localize_script 函数将PHP值传递给脚本(see WordPress Codex page for this function).name 和name2 a中的值script 标记

SO网友:ifdion

希望这有帮助。

使用WPAlchemy设置您的元数据库。http://www.farinspace.com/wpalchemy-metabox/. 到目前为止,这是最简单的方法。设置后<input type="text"> 字段刚添加<?php echo get_option(\'your option name\')?> 使用条件来检查它是否已经有值。

Untested code :

<?php
    if($metabox->get_the_value(\'_coordinate\')){
        $value = $metabox->get_the_value(\'_coordinate\');
    } else {
        $value = get_option(\'your option name\');
    }
?>
<input type="text" name="<?php $metabox->the_name(\'_coordinate\'); ?>" value="<?php echo $value; ?>"/>

结束