以下是我的设置:
父“Gallery”页面:\\u常规页面,而不是自定义类型或任何内容\\u几个“Project”子页面(可能只有1个,数量不限):正常页面也会有元框或自定义字段,用于将内容输入到我的预格式化区域。我不在乎是元框还是自定义字段,不管是什么数字!
我使用WP提供的标准代码来显示子页面标题和the_content
在父页上。
<?php
$mypages = get_pages( array( \'child_of\' => $post->ID, \'sort_column\' => \'post_date\', \'sort_order\' => \'desc\' ) );
foreach( $mypages as $page ) {
$content = $page->post_content;
if ( ! $content ) // Check for empty page
continue;
$content = apply_filters( \'the_content\', $content );
?>
<div class="gallery-wrapper">
<div class="body">
<div id="zoom">
<span></span>
<?php echo $content; ?>
</div>
<a href="" rel="lightbox">Click to enlarge and view project gallery</a>
</div>
<div class="sidebar" style="margin-bottom: 30x; padding-top: 20px;">
<h3><?php echo $page->post_title; ?></h3>
<p><strong>Goal:</strong> <?php echo get_post_meta($post->ID, \'ecpt_goal\', false); ?></p>
<p><strong>Challenge:</strong> <?php echo $ecpt_challenge; ?></p>
<p><strong>Solution:</strong> <?php echo $ecpt_solution; ?></p>
<p><strong>Results:</strong> <?php echo $ecpt_results; ?></p>
</div>
</div>
<div class="clear-border"> </div>
<!--- --->
<?php
}
?>
父页面上未显示任何自定义区域。我不知道如何过滤它们,理想情况下,我希望在
the_content
.
<p><strong>Goal:</strong> <?php echo get_post_meta($post->ID, \'ecpt_goal\', false); ?></p>
<p><strong>Challenge:</strong> <?php echo $ecpt_challenge; ?></p>
这两行代码都可以将元框信息拉到单独的子页面中,但不确定区别是什么,包括仅供参考。
或者,如果您知道如何将自定义字段包含到\\u内容中,下面是我在ACF中使用的内容:
<h3><?php the_field(client_title_1); ?></h3>
<strong>Goal:</strong> <?php the_field(goal_1); ?>
<strong>Challenge:</strong> <?php the_field(challenge_1); ?>
等等。
提前非常感谢!
编辑为添加:是否有方法将我的自定义元框或字段添加到默认集,以便它们自动包含在the_content
没有过滤器和挂钩?
SO网友:Aamer Shahzad
无论您用于自定义字段或自定义元数据库的插件是什么,请始终记住meta_key
, e、 g;\'ecpt_goal\'
对于goal
元框/自定义字段。
要获取元盒/自定义字段的保存值,可以使用get_post_meta(\'post_id\', \'meta_key\', \'single\' )
作用访问codexget_post_meta
$goal = get_post_meta( get_the_ID(), \'ecpt_goal\', true );
$ecpt_challenge = get_post_meta( get_the_ID(), \'ecpt_challenge\', true );
$ecpt_solution = get_post_meta( get_the_ID(), \'ecpt_solution\', true );
$ecpt_results = get_post_meta( get_the_ID(), \'ecpt_results\', true );
if ( $goal != \'\' ) {
echo \'<p><strong>Goal : </strong>\'.$goal.\'</p>\';
}
if ( $ecpt_challenge != \'\' ) {
echo \'<p><strong>Challenge : </strong>\'.$ecpt_challenge.\'</p>\';
}
if ( $ecpt_solution != \'\' ) {
echo \'<p><strong>Solution : </strong>\'.$ecpt_solution.\'</p>\';
}
if ( $ecpt_results != \'\' ) {
echo \'<p><strong>Results : </strong>\'.$ecpt_results.\'</p>\';
}