admin管理员组文章数量:1122846
Here's my setup:
- Parent "Gallery" page: _regular page, not custom type or anything _
- Several "Project" child pages (could be as few as 1, unlimited
number): also normal pages
Child pages will either have meta boxes or custom fields for entering stuff into my pre-formatted areas. I don't care if it's meta boxes or custom fields, whatever is figure-outable!
I'm using standard WP-provided code to show Child page titles and the_content
on the Parent page.
<?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
}
?>
None of the custom areas are showing up on the Parent page. I have no idea how to filter them, and ideally would like to include the custom fields OR metaboxes into 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>
Both of these lines work to pull the meta box info into the individual Child page, not sure what the difference is, including just for reference.
Alternatively, if you know how to include custom fields into the_content, here's what I'm using with 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); ?>
ETC.
Thank you very much in advance!
EDITED TO ADD:
Is there a way to add my custom meta boxes or fields to the default set so they would automatically be included into the_content
without filters and hooks?
Here's my setup:
- Parent "Gallery" page: _regular page, not custom type or anything _
- Several "Project" child pages (could be as few as 1, unlimited
number): also normal pages
Child pages will either have meta boxes or custom fields for entering stuff into my pre-formatted areas. I don't care if it's meta boxes or custom fields, whatever is figure-outable!
I'm using standard WP-provided code to show Child page titles and the_content
on the Parent page.
<?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
}
?>
None of the custom areas are showing up on the Parent page. I have no idea how to filter them, and ideally would like to include the custom fields OR metaboxes into 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>
Both of these lines work to pull the meta box info into the individual Child page, not sure what the difference is, including just for reference.
Alternatively, if you know how to include custom fields into the_content, here's what I'm using with 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); ?>
ETC.
Thank you very much in advance!
EDITED TO ADD:
Is there a way to add my custom meta boxes or fields to the default set so they would automatically be included into the_content
without filters and hooks?
3 Answers
Reset to default 0where are you setting $ecpt_challenge
, $ecpt_solution
and $ecpt_results
?
also get_post_meta($post->ID, 'ecpt_goal', false);
returns an array, so use
print_r ( get_post_meta($post->ID, 'ecpt_goal', false));
OR for single result pass "true" in the last argument.
echo get_post_meta($post->ID, 'ecpt_goal', true);
reference: get_post_meta() @codex
When using a plugin to add custom fields, I usually do something like this:
var_dump(get_post_custom());
(http://codex.wordpress.org/Function_Reference/get_post_custom)
I do this usually because every (decent) plugin will add a prefix to the custom fields. Once I have the name of the field, I can use get_post_meta() to place the field in the template.
However, using this plugin, you have an even easier approach. It provides functions that aid you in displaying your custom fields: get_field(), and the_field().
To display them in your template, you are either going to have to add the fields manually to the template - or create a filter for the_content and use a function to append them to the content automatically. (The latter is probably the best approach if you need the change to affect multiple templates).
Whatever plugin you use for custom fields or custom metaboxes always remember the meta_key
, e.g; 'ecpt_goal'
for goal
metabox/custom field.
to get the saved value for the metabox/custom field you can use get_post_meta('post_id', 'meta_key', 'single' )
function. visit codex get_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>';
}
本文标签: metaboxInclude custom fields into the content of a regular page
版权声明:本文标题:metabox - Include custom fields into the content of a regular page 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736286944a1927775.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论