我有一个在同一个meta\\u键中存储新旧meta\\u值的代码,但我不知道它是对还是错(请注意,我希望在同一个meta\\u键中存储数据,而不是单独的meta\\u键):
<?php
global $post;
$get_my_meta = get_post_meta( $post->ID, \'my_meta\', true );
$post_meta_name = get_post_meta($post->ID, \'name-en\',true);
$meta = array(
\'name\' => $post_meta_name,
\'chap\' => $season[\'quality_serie\']
);
$updatemeta = array ($get_my_meta, $meta);
if($get_my_meta){ update_post_meta( $post->ID, \'my_meta\', $updatemeta );
} else { add_post_meta( $post->ID, \'my_meta\', $meta, true );
} ?>
当我想获取并显示存储的数据时,它只显示最后的数据,而不是所有数据:
<?php
$first_link = get_post_meta($post->ID,"my_meta", true);
if($first_link){
?>
<?php
foreach( $first_link as $season){
?>
<ul>
<li>
<?php echo $season[\'chap\'];?>
<?php echo $season[\'name\'];?>
</li>
</ul>
<?php }} ?>
任何人都可以修改此代码吗?
SO网友:Buttered_Toast
保存逻辑应该是这样的
<?php
global $post;
$get_my_meta = get_post_meta($post->ID, \'my_meta\', true);
$post_meta_name = get_post_meta($post->ID, \'name-en\',true);
$meta = [
\'name\' => $post_meta_name,
\'chap\' => $season[\'quality_serie\']
];
$updatemeta = [
$get_my_meta,
$meta
];
add_post_meta($post->ID, \'my_meta\', $meta, true);
?>
循环逻辑应该是这样的
<?php
$first_link = get_post_meta($post->ID, \'my_meta\');
if ($first_link) : foreach( $first_link as $season) :
?>
<ul>
<li>
<?php echo $season[\'chap\'];?>
<?php echo $season[\'name\'];?>
</li>
</ul>
<?php endforeach; endif; ?>
从你的代码来看,我认为这是可行的。如果没有,请添加
print_r($first_link)
所以我可以在本地环境中复制它以进行更多测试?