我有一个问题,我不知道如何解决它。我尝试了一些解决方案,但我失败了,因为我不是一个好的程序员。我也试图找到一个解决方案,但没有提出类似的问题。所以这就是问题所在。
我有一个名为“安排”的自定义帖子类型,与该CPT关联的自定义字段之一是名为“夜晚”的选择框(rtm_nights), 具有选项:
在我的single-arrangements.php 有一个get_template_part 调用的函数content-arrangements.php, 现在我制作了4个类似的文件,因为我需要重新组织安排模板:
总有一天我会满足的。php内容两天。php内容三天。php内容四天。php现在。。。我需要的是根据rmt\\U nights字段中选择的内容获取一些内容模板。
如果选择了“无夜”content-oneday.php 应通过get\\u tempalte\\u part调用如果选择“1晚”content-twoday.php 应该通过get_tempalte_part调用如果选择“2晚”content-threeday.php 应通过get\\u tempalte\\u part调用如果选择“3晚”content-fourday.php 应通过get\\u tempalte\\u part调用我在不同版本中尝试了类似的方法,但显然是错误的:
<?php if ( get_post_meta($post->ID, \'rtm_nights\', \'3 nights\') ) ; ?>
<?php get_template_part( \'content\', \'fourday\' ); ?>
<?php if ( get_post_meta($post->ID, \'rtm_nights\', \'2 nights\') ) ; ?>
<?php get_template_part( \'content\', \'threeday\' ); ?>
<?php if ( get_post_meta($post->ID, \'rtm_nights\', \'1 night\') ) ; ?>
<?php get_template_part( \'content\', \'twoday\' ); ?>
<?php if ( get_post_meta($post->ID, \'rtm_nights\', \'no nights\') ) ; ?>
<?php get_template_part( \'content\', \'oneday\' ); ?>
<?php endif; ?>
最合适的回答,由SO网友:Mayeenul Islam 整理而成
这是一个PHP问题,与WordPress无关,但我的回答是因为您正在处理代码。只要让它变得简单,你也可以经历它。:)
<?php
/**
* get your custom field data and store into a variable
* to make it easy - nothing else
*/
$my_custom_field = get_post_meta( $post->ID, \'rtm_nights\', $single=true );
if ( $my_custom_field == \'3 nights\' ) {
get_template_part( \'content\', \'fourday\' );
} else if ( $my_custom_field == \'2 nights\' ) {
get_template_part( \'content\', \'threeday\' );
} else if ( $my_custom_field == \'1 night\' ) {
get_template_part( \'content\', \'twoday\' );
} else if ( $my_custom_field == \'no nights\') {
get_template_part( \'content\', \'oneday\' );
} //endif
?>
编辑,你缺少一些关于
get_post_meta()
语法:
<?php get_post_meta( $post_id, $key, $single ); ?>
无法通过它检查值。:)
SO网友:Lucio Coire Galibone
这是一个语法问题,不是真正的wordpress问题。但是:
根据get_post_meta()
Function Reference, 第三个参数用于
返回单个结果,作为string
如果是的话true
不要做比较。
您必须获取自定义字段并检查其值。
if ( get_post_meta($post->ID, \'rtm_nights\') == \'3 nights\' ) {
get_template_part( \'content\', \'fourday\' );
} else if ( get_post_meta($post->ID, \'rtm_nights\') == \'2 nights\' ) {
get_template_part( \'content\', \'threeday\' );
} else if ( get_post_meta($post->ID, \'rtm_nights\') == \'1 nights\' ) {
get_template_part( \'content\', \'twoday\' );
} else if ( get_post_meta($post->ID, \'rtm_nights\') == \'no nights\' ) {
get_template_part( \'content\', \'oneday\' );
}