在常规页面的内容中包含自定义域

时间:2012-08-02 作者:Phantasmix

以下是我的设置:

父“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 没有过滤器和挂钩?

3 个回复
SO网友:pcarvalho

您在哪里设置$ecpt_challenge, $ecpt_solution$ecpt_results?

而且get_post_meta($post->ID, \'ecpt_goal\', false); 返回数组,因此使用

print_r ( get_post_meta($post->ID, \'ecpt_goal\', false));
OR 对于单个结果,在最后一个参数中传递“true”。

 echo get_post_meta($post->ID, \'ecpt_goal\', true);
参考号:get_post_meta() @codex

SO网友:Ed Burns

使用插件添加自定义字段时,我通常会执行以下操作:

var_dump(get_post_custom());
(http://codex.wordpress.org/Function_Reference/get_post_custom)

我这样做通常是因为每个(体面的)插件都会在自定义字段中添加前缀。获得字段名称后,我可以使用get\\u post\\u meta()将字段放置在模板中。

然而,使用这个插件,您有一个更简单的方法。它提供了帮助您显示自定义字段的函数:get\\u field()和the\\u field()。

要在模板中显示这些字段,您需要手动将字段添加到模板中,或者为\\u内容创建一个过滤器,并使用函数将其自动附加到内容中。(如果需要更改以影响多个模板,则后者可能是最好的方法)。

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>\';
}

结束

相关推荐

使用wp_EDITOR发布自定义metabox文本区域

我是一个新手,希望将wp\\U编辑器添加到自定义的metabox textarea字段中。我似乎到处都在寻找使用wp\\U编辑器编写带有文本区域的元盒的完整示例。我正在寻找一个完整的从头到尾的例子。我不想使用插件。有人有完整示例的链接吗?谢谢