高级自定义域-从父页面获取自定义域

时间:2013-08-23 作者:Mikkel Tschentscher

我使用高级自定义字段,使我的客户更容易管理其内容。

在我所有的子页面和父页面上,我希望有相同的标题图像和侧边栏信息。

尽管我希望使“父页#1”和“父页#2”具有不同的信息,但这是由客户端通过高级自定义字段控制的。

现在cleint转到每个父和子页面手动填写信息-我希望它只在父页面上填写。使子页面从父页面获取信息。

Parent Page #1

  • 子页面#1-应从“父页面1”获取自定义字段值
  • 子页面#2-应从“父页面1”获取自定义字段值
  • 子页面#3-应从“父页面1”获取自定义字段值

    Parent Page #2

    • 子页面#1-应从“父页面2”获取自定义字段值
    • 子页面#2-应从“父页面2”获取自定义字段值
    • 子页面#3-应从“父页面2”获取自定义字段值。

      在我的“父页面模板”中,我使用以下内容生成图像:

      <img src="<?php the_field(\'header_image\'); ?>">
      
      那么,我如何在“子页面模板”上从子页面的父页面获取字段“标题图像”?

3 个回复
最合适的回答,由SO网友:RRikesh 整理而成

在循环中,可以使用访问父页的id$post->post_parent.

只需将此值作为第二个参数传递:

<img src="<?php the_field(\'header_image\', $post->post_parent ); ?>">

SO网友:Angelique

关于:

<img src="<?php $parent_header_image = get_post_meta($post->post_parent, \'header_image\', true); echo $parent_header_image;?>">
很明显,我没有你的设置,所以不能真正测试这个,但它看起来很好。请注意,这只是在前端模板中显示父数据,不会在子页面管理屏幕上显示或填充字段。

SO网友:Charles Clarkson

在包含模板文件时,页面的查询已经运行,并且$post全局变量中有一个WP\\u post对象。下面是$post:

WP_Post::__set_state(array(
   \'ID\' => 3440,
   \'post_author\' => \'1\',
   \'post_date\' => \'2013-08-19 13:06:04\',
   \'post_date_gmt\' => \'2013-08-19 13:06:04\',
   \'post_content\' => \'\',
   \'post_title\' => \'Models\',
   \'post_excerpt\' => \'\',
   \'post_status\' => \'publish\',
   \'comment_status\' => \'open\',
   \'ping_status\' => \'closed\',
   \'post_password\' => \'\',
   \'post_name\' => \'models\',
   \'to_ping\' => \'\',
   \'pinged\' => \'\',
   \'post_modified\' => \'2013-08-23 14:32:57\',
   \'post_modified_gmt\' => \'2013-08-23 14:32:57\',
   \'post_content_filtered\' => \'\',
   \'post_parent\' => 3442,
   \'guid\' => \'http://charlesclarkson.com/?page_id=3440\',
   \'menu_order\' => 0,
   \'post_type\' => \'page\',
   \'post_mime_type\' => \'\',
   \'comment_count\' => \'0\',
   \'filter\' => \'raw\',
   \'format_content\' => NULL,
))
如清单所示,此对象中有一个名为post_parent. 要访问它,请使用$post->post_parent. 顶级页面的post父级设置为\'0\'.

根据ACF docs for the_field(), 还有第二个参数用于将post id传递给函数。

假设页面模板中的代码没有$post:

<img src="<?php the_child_or_parent_image_src(); ?>">

<?php
function the_child_or_parent_image_src() {
    global $post;

    if ( $post->post_parent )
        the_field( \'header_image\',  $post->post_parent );

    the_field( \'header_image\' );
}
?>
(注意:代码没有经过很好的测试。)

结束

相关推荐

高级自定义域-从父页面获取自定义域 - 小码农CODE - 行之有效找到问题解决它

高级自定义域-从父页面获取自定义域

时间:2013-08-23 作者:Mikkel Tschentscher

我使用高级自定义字段,使我的客户更容易管理其内容。

在我所有的子页面和父页面上,我希望有相同的标题图像和侧边栏信息。

尽管我希望使“父页#1”和“父页#2”具有不同的信息,但这是由客户端通过高级自定义字段控制的。

现在cleint转到每个父和子页面手动填写信息-我希望它只在父页面上填写。使子页面从父页面获取信息。

Parent Page #1

  • 子页面#1-应从“父页面1”获取自定义字段值
  • 子页面#2-应从“父页面1”获取自定义字段值
  • 子页面#3-应从“父页面1”获取自定义字段值

    Parent Page #2

    • 子页面#1-应从“父页面2”获取自定义字段值
    • 子页面#2-应从“父页面2”获取自定义字段值
    • 子页面#3-应从“父页面2”获取自定义字段值。

      在我的“父页面模板”中,我使用以下内容生成图像:

      <img src="<?php the_field(\'header_image\'); ?>">
      
      那么,我如何在“子页面模板”上从子页面的父页面获取字段“标题图像”?

3 个回复
最合适的回答,由SO网友:RRikesh 整理而成

在循环中,可以使用访问父页的id$post->post_parent.

只需将此值作为第二个参数传递:

<img src="<?php the_field(\'header_image\', $post->post_parent ); ?>">

SO网友:Angelique

关于:

<img src="<?php $parent_header_image = get_post_meta($post->post_parent, \'header_image\', true); echo $parent_header_image;?>">
很明显,我没有你的设置,所以不能真正测试这个,但它看起来很好。请注意,这只是在前端模板中显示父数据,不会在子页面管理屏幕上显示或填充字段。

SO网友:Charles Clarkson

在包含模板文件时,页面的查询已经运行,并且$post全局变量中有一个WP\\u post对象。下面是$post:

WP_Post::__set_state(array(
   \'ID\' => 3440,
   \'post_author\' => \'1\',
   \'post_date\' => \'2013-08-19 13:06:04\',
   \'post_date_gmt\' => \'2013-08-19 13:06:04\',
   \'post_content\' => \'\',
   \'post_title\' => \'Models\',
   \'post_excerpt\' => \'\',
   \'post_status\' => \'publish\',
   \'comment_status\' => \'open\',
   \'ping_status\' => \'closed\',
   \'post_password\' => \'\',
   \'post_name\' => \'models\',
   \'to_ping\' => \'\',
   \'pinged\' => \'\',
   \'post_modified\' => \'2013-08-23 14:32:57\',
   \'post_modified_gmt\' => \'2013-08-23 14:32:57\',
   \'post_content_filtered\' => \'\',
   \'post_parent\' => 3442,
   \'guid\' => \'http://charlesclarkson.com/?page_id=3440\',
   \'menu_order\' => 0,
   \'post_type\' => \'page\',
   \'post_mime_type\' => \'\',
   \'comment_count\' => \'0\',
   \'filter\' => \'raw\',
   \'format_content\' => NULL,
))
如清单所示,此对象中有一个名为post_parent. 要访问它,请使用$post->post_parent. 顶级页面的post父级设置为\'0\'.

根据ACF docs for the_field(), 还有第二个参数用于将post id传递给函数。

假设页面模板中的代码没有$post:

<img src="<?php the_child_or_parent_image_src(); ?>">

<?php
function the_child_or_parent_image_src() {
    global $post;

    if ( $post->post_parent )
        the_field( \'header_image\',  $post->post_parent );

    the_field( \'header_image\' );
}
?>
(注意:代码没有经过很好的测试。)

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: