passing parameters to php include/require construct

前端 未结 4 631
隐瞒了意图╮
隐瞒了意图╮ 2021-02-12 11:01

I\'ve read quite a few posts that are very similar to the question I\'m about to ask, but I just wanted to be sure that there wasn\'t a more sophisticated way to do this. Any f

4条回答
  •  忘掉有多难
    2021-02-12 11:05

    Include with parameters

    This is something I've used on my recent Wordpress project

    Make a function functions.php:

    function get_template_partial($name, $parameters) {
       // Path to templates
       $_dir = get_template_directory() . '/partials/';
       // Unless you like writing file extensions
       include( $_dir . $name . '.php' );
    } 
    

    Get parameters in cards-block.php:

    // $parameters is within the function scope
    $args = array(
        'post_type' => $parameters['query'],
        'posts_per_page' => 4
    );
    

    Call the template index.php:

    get_template_partial('cards-block', array(
        'query' => 'tf_events'
    )); 
    

    If you want a callback

    For example, the total count of posts that were displayed:

    Change functions.php to this:

    function get_template_partial($name, $parameters) {
       // Path to templates
       $_dir = get_template_directory() . '/partials/';
       // Unless you like writing file extensions
       include( $_dir . $name . '.php' );
       return $callback; 
    } 
    

    Change cards-block.php to this:

    // $parameters is within the function scope
    $args = array(
        'post_type' => $parameters['query'],
        'posts_per_page' => 4
    );
    $callback = array(
        'count' => 3 // Example
    );
    

    Change index.php to this:

    $cardsBlock = get_template_partial('cards-block', array(
        'query' => 'tf_events'
    )); 
    
    echo 'Count: ' . $cardsBlock['count'];
    

提交回复
热议问题