您确定“pi\\u dropdown\\u options”post\\u meta的输出实际上是“Option 1”或“Option 2”的形式吗?如果在“pi\\u dropdown\\u options”的输出中看不到这些值中的任何一个,那么您只会看到所选下拉列表中的第一项。您是否尝试过只回显“pi\\u dropdown\\u options”自定义字段以查看其内容?它也将区分大小写匹配。
另一件需要注意的事情(正如s\\u ha\\u dum在之前的回答中指出的)是列表中“option”元素的标记没有设置值:
<option<?php selected( get_post_meta($post->ID, \'cpi_dropdown_options\', true), \'Option 1\' ); ?>>No</option>
如果我读得正确,那么如果这是选定的选项,那么标记将是:
<option selected="selected">No</option>
因此,如果您随后保存帖子,“pi\\u dropdown\\u options”post\\u meta可能为空,每个选项上都应该有一个“value”属性,如:
<option value="Option 1" selected>No</option>
因此PHP代码类似于:
<option value="Option 1" <?php selected( get_post_meta($post->ID, \'cpi_dropdown_options\', true), \'Option 1\' ); ?>>No</option>
不知道这些是否有用!或者,您可以尝试另一种语法来检查option selected state,而无需使用“selected”WordPress函数:
<option value="Option 1" <?php if ( get_post_meta($post->ID, \'cpi_dropdown_options\', true) == \'Option 1\' ) echo \'selected="selected"\'; ?>>No</option>