从与当前页面共享父级的页面的自定义字段中获取值

时间:2017-06-01 作者:Jack Cash

我有一个页面有一个真/假自定义字段。

我要做的是在另一个页面上输出一个链接,该页面与具有自定义字段的页面共享父级。

下面是Wordpress参考中的代码,允许我将目标指向共享父级的页面。

<?php
if ( $post->post_parent ) {
$children = wp_list_pages( array(
    \'title_li\' => \'\',
    \'child_of\' => $post->post_parent,
    \'echo\'     => 0
) );
} else {
$children = wp_list_pages( array(
    \'title_li\' => \'\',
    \'child_of\' => $post->ID,
    \'echo\'     => 0
) );
}

if ( $children ) : ?>

WANT TO INSERT LINK HERE

<?php endif; ?>
这是我用来通过高级自定义字段复选框插入链接的代码。

<?php if ( get_field( \'show_video_menu\' ) ): ?>

<li><a id="artists-video" href="/<?php global $post;
if($post->post_parent) { $post_data = get_post($post->post_parent);
echo $post_data->post_name; }?>/video">Video</a></li>

<?php endif; // end of if field_name logic ?>
我很接近,但我似乎无法以某种方式组合代码,只能在共享父级的页面上显示链接。链接出现在使用相同页面模板的所有页面上。

这是我当前使用的代码

<?php
if ( $post->post_parent ) {
$children = wp_list_pages( array(
    \'title_li\' => \'\',
    \'child_of\' => $post->post_parent,
    \'echo\'     => 0
) );
} 

if ( $children || get_field( \'show_video_menu\' ) ): ?>

<li><a id="artists-video" href="/<?php global $post;
if($post->post_parent) { $post_data = get_post($post->post_parent);
echo $post_data->post_name; }?>/video">Video</a></li>

<?php endif; ?>
我与家长Margo Wolowiec创建了一个带有自定义字段的视频页面,但它也显示在其他不相关的页面上。

1 个回复
SO网友:inarilo

我假设在这种情况下只有两个孩子。

<?php
$child_id = $post->ID;
if ( $post->post_parent ) {
    $args = array(
                    \'post_parent\' => $post->post_parent,
                    \'post_type\'   => \'page\', 
                    \'numberposts\' => -1,
                    \'post_status\' => \'publish\' 
                  );
    $children = get_children($args);
    if(count($children) == 2) {
        $child_id = $children[0]->ID == $post->ID ? $children[1]->ID : $children[0]->ID;
    }
} 

if ( get_field( \'show_video_menu\' , $child_id ) ): ?>

<li><a id="artists-video" href="/<?php global $post;
if($post->post_parent) { $post_data = get_post($post->post_parent);
echo $post_data->post_name; }?>/video">Video</a></li>

<?php endif; ?>

结束