首页 > 解决方案 > 无法设置 posts_per_page 也无法排序/排序我的简码函数

问题描述

我一直在研究一个新功能,我可以简单地添加一个短代码来显示我设置的特定页面的子页面。一切都很好,看起来很好,直到我想订购/排序它们并设置一个限制。

这是我的代码

function whatwedo_function () {

    $dynamicVVG = url_to_postid( site_url('what-we-do') );

    $args = array(
        'parent' => $dynamicVVG,
        'post_type' => 'page',
        'post_status' => 'publish',
        'order' => 'DESC',
        'posts_per_page' => 2,

    ); 
    $pages = get_pages($args); 

    // Initialize a variable to build your output string
    $output ="";

    $output = '<ul class="four no-bullets container"><div class="row">';

    foreach( $pages as $page ) {
        // Add to the string rather than return it
        $output .='
        <li class="col-md-4">
            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <span class="thumbnail ">'.get_the_post_thumbnail($page->ID, "large", array("class"=>"img-fluid") ).'</span>
            </a>

            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <h3><span class="title">'.$page->post_title.'</span></h3>
            </a>

            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <span class="desc">'.get_the_excerpt($page->ID).'</span>
            </a>

            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <button type="button" class="btn btn-primary btn-lg btn-block mt-4">Block level button</button>
            </a>
        </li>';
    }

    $output .='
        </ul>
    </div>';

    wp_reset_postdata();
    return $output;
}

add_shortcode('what-we-do','whatwedo_function');

我试过了

有人看到我在这里错过了什么吗?

标签: phpwordpressparent-childwordpress-shortcode

解决方案


添加排序参数

$args = array(
    'parent' => 2,
    'post_type' => 'page',
    'post_status' => 'publish',

    ...
    'orderby'          => 'date',
    'order'            => 'DESC',
    ...

    'posts_per_page' => 2,

); 

替换代码

$pages = get_pages($args); 

$query = new WP_Query( $args );
$pages = $query->posts;

定论。还将父级更改为 post_parent

    function whatwedo_function () {


    $dynamicVVG = url_to_postid( site_url('what-we-do') );

    $args = array(
        'post_parent' => $dynamicVVG,
        'post_type' => 'page',
        'post_status' => 'publish',
        'orderby'          => 'date',
        'order'            => 'DESC',
        'posts_per_page' => 2,

    ); 


    $query = new WP_Query( $args );

    $pages = $query->posts;



    // Initialize a variable to build your output string
    $output ="";

    $output = '<ul class="four no-bullets container"><div class="row">';

    foreach( $pages as $page ) {
        // Add to the string rather than return it
        $output .='
        <li class="col-md-4">
            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <span class="thumbnail ">'.get_the_post_thumbnail($page->ID, "large", array("class"=>"img-fluid") ).'</span>
            </a>

            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <h3><span class="title">'.$page->post_title.'</span></h3>
            </a>

            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <span class="desc">'.get_the_excerpt($page->ID).'</span>
            </a>

            <a href="'.get_permalink($page->ID).'" rel="bookmark" title="test">
                <button type="button" class="btn btn-primary btn-lg btn-block mt-4">Block level button</button>
            </a>
        </li>';
    }

    $output .='
        </ul>
    </div>';

    wp_reset_postdata();
    return $output;
}

add_shortcode('what-we-do','whatwedo_function');

推荐阅读