我有一个独特的情况,我在谷歌搜索时找不到。本质上,我是在创建一个插件,并使用以下代码创建了一个元框(这是回调函数):
// Callback function (creates meta box)
function perPageMeta($post) {
echo \'Last Modified: \' . \'<strong>\' . $post->post_modified . \'</strong>\';
$storedMetaData = get_post_meta($post->ID);
?>
<form name="meta-box-<?php echo $post->ID; ?>" id="meta-box-field meta-box-<?php echo $post->ID; ?>">
<input type="text" name="meta-text-businessName" id="meta-text-businessName" placeholder="Business Name"
value="<?php if(isset ($storedMetaData[\'meta-text-businessName\'])) echo $storedMetaData[\'meta-text-businessName\'][0]; ?>"></input>
</form>
<?php
wp_nonce_field(basename(__FILE__), \'meta-nonce\'); // Security puproses
}
这很有效。然而,在保存元数据(这是有效的)后,我想在另一个函数中检索数据,然后将其传递给JavaScript,以便将其发布到网站的DOM中。
我的问题是,我似乎无法以任何方式检索帖子的ID。我尝试从perPageMeta()函数传递它,但它只在后端(在Wordpress admin中)运行JS,而不是在实际的站点上运行。
下面是我添加元数据的函数:
function addMetaData() {
$value = get_post_meta($post->ID, \'meta-text-businessName\', true);
if(!empty ($value)) {
$values = array();
$values[\'name\'] = $value;
wp_enqueue_script(\'insert-meta\', plugin_dir_url(__FILE__) . \'/js/insert-metadata.js\', array(jquery));
wp_localize_script(\'insert-meta\', \'settings\', $values);
}
}
目前我已经断开了这两个函数的连接,用于测试目的。。。但我仍在努力寻找解决方案。
So, 如何获得addMetaData函数的正确页面ID?如果手动输入正确的ID,将检索到正确的数据,但它需要是动态的$如果在addMetaData()函数中使用,post->ID显然返回null(尽管它在perPageMeta函数中工作正常)
这两个函数在同一脚本中。