首先抱歉我的英语。
我将一个简单的元框添加到我的自定义Wordpress中
这是我的add_meta_boxes代码:
function download_link_boxes()
{
$screens = array('post', 'music');
foreach ($screens as $screen) {
add_meta_box('dl_link_box', 'LINKS', 'download_box_content', $screen);
}}
这里的回调函数:
function download_box_content($post)
{
$music_links = get_post_meta($post->
ID, 'music-links', 'false');
<
input type="text" name="link-music[]" value="http://www.srcmini.com/<
?php echo $music_links ?>">
<
input type="text" name="link-music[]" value="http://www.srcmini.com/<
?php echo $music_links ?>">
<
input type="text" name="link-music[]" value="http://www.srcmini.com/<
?php echo $music_links ?>">
}
对于更新和保存:
add_action('save_post', 'save_my_music_links');
function save_my_music_links($post_id)
{if (!isset($_POST['link-music[]'])) {
return;
}if(defined('DOING_AUTOSAVE' &
&
DOING_AUTOSAVE)){
return;
}$my_links = sanitize_text_field($_POST['link-music[]']);
update_post_meta($post_id, 'music-links', $my_links);
}
现在, 如果将我的文本框的名称更改为’ link-music’ 而不是’ link-music []’ 并仅保留一个文本框, 则可以正常工作。我可以添加, 更新和删除, 但对于多文本框什么也没有发生!
#1从我对你的代码的快速浏览中可以看到, 有些事情是不正确的。
download_link_boxes()函数很好。其他两个功能不是。
【如何使用WordPress Meta Box保存多文本框】让我们从download_box_content()开始:
- 你的每个输入都在php中, 它们不能放在php包装器中。
- 当你尝试将link-music的数据存储为数组时, 我希望某种循环会遍历每个值, 即在你爆炸变量本身之后。但是在你的情况下, 如果只期望3个值, 请使用数组索引格式来获取每个链接
因此, 如果你修复了这些更改, 则你的functions.php中应该包含以下内容:
function download_box_content($post)
{
$music_links = get_post_meta($post->
ID, 'music-links', 'false');
?>
<
input type="text" name="link-music[]" value="http://www.srcmini.com/<
?php echo isset($music_links[0]) ? $music_links[0] :"" ?>
">
<
input type="text" name="link-music[]" value="http://www.srcmini.com/<
?php echo isset($music_links[1]) ? $music_links[1] :"" ?>
">
<
input type="text" name="link-music[]" value="http://www.srcmini.com/<
?php echo isset($music_links[2]) ? $music_links[2] :"" ?>
">
<
?php
}add_action('save_post', 'save_my_music_links');
function save_my_music_links($post_id)
{if (!isset($_POST['link-music'])) {
return;
}if(defined('DOING_AUTOSAVE' &
&
DOING_AUTOSAVE)){
return;
}$my_links = array_map("sanitize_text_field", $_POST['link-music']);
update_post_meta($post_id, 'music-links', $my_links);
}
推荐阅读
- 更新wordpress后如何解决php错误
- 如何将wordpress图像调整为固定高度和自动宽度
- 如何在WP-admin用户界面中重命名”作者”标签
- 如何替换wordpress the_title中的文本()
- 如何从WordPress主题定制器中删除菜单部分
- 如何从WordPress中删除()
- 点击特色图片后如何重定向到帖子()
- 如何在WordPress菜单类列表中添加其他类
- 如何将自己的HTML放入WordPress主题()