列出来自父级的所有子自定义帖子

时间:2018-06-16 15:53:35

标签: wordpress wordpress-theming

我需要一种方法来引用当前子帖子的父母,将该短代码添加到孩子的帖子模板中,以便在孩子的帖子中显示所有父母孩子。

我认为一个例子更容易理解:)

如果我在:“/ Season-1 / Episode-1”。 我想在“Episode-1”中列出“Season-1”的所有剧集,

但如果我在“/ Season-2 / Episode-19” 我想在“Episode-19”中列出“Season-2”的所有剧集。

目前我正在使用此代码在任何页面上显示特定父级的子帖列表,问题是我不知道如何自动化短代码(或者如果需要将PHP代码更改为自动工作而没有蛞蝓)。

function wpb_list_child_pages( $atts = array() ) {
$atts = shortcode_atts( array(
    'id'   => 0,
    'slug' => '',
), $atts );

if ( $atts['slug'] ) {
    global $wpdb;

    $q = $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_name = %s", $atts['slug'] );
    $post_id = $wpdb->get_var( $q );

    if ( ! $post_id ) {
        return '';
    }
} else {
    $post_id = absint( $atts['id'] );
}

$post = get_post( $post_id ); // WP_Post on success.
$childpages = '';

if ( $post && is_post_type_hierarchical( $post->post_type ) ) {
    $childpages = wp_list_pages( array(
        'child_of' => $post->ID,
        'title_li' => '',
        'post_type' => 'season',
        'echo'     => 0,
    ) );
}

if ( $childpages ) {
    $childpages = '<ul>' . $childpages . '</ul>';
}

return $childpages;
}
add_shortcode( 'wpb_childpages', 'wpb_list_child_pages' );`

然后我使用这个短代码,我想显示特定的子列表:

使用帖子ID: [wpb_childpages id="{POST_ID} /] 例如。 [wpb_childpages id="123" /]

使用post slug:[wpb_childpages slug="{SLUG} /] 例如。 [wpb_childpages slug="home" /]

0 个答案:

没有答案