最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

get variables data from functions.php to template wordpress (without global variables)

programmeradmin1浏览0评论

I have in wordpress functions.php file

This sample works with one variable only, but i want multiple variables

function variables() {
   $var1 = 'lorem';
    return $var1;
}

in the front template results "lorem":

echo variables();

works fine, but if i have many variables how can i displayed it?

example:

echo variables('var1');
echo variables('var2');
echo variables('etc');

i found a solution using global variables, but i don't like use that.

edit:

in functions.php add variables :

$some = "lorem 1"
$some2 = "lorem 2"
$some3 = "lorem 3"

then display in theme

<?php echo some(); ?>
<?php echo some2(); ?>
<?php echo some3(); ?>

I have in wordpress functions.php file

This sample works with one variable only, but i want multiple variables

function variables() {
   $var1 = 'lorem';
    return $var1;
}

in the front template results "lorem":

echo variables();

works fine, but if i have many variables how can i displayed it?

example:

echo variables('var1');
echo variables('var2');
echo variables('etc');

i found a solution using global variables, but i don't like use that.

edit:

in functions.php add variables :

$some = "lorem 1"
$some2 = "lorem 2"
$some3 = "lorem 3"

then display in theme

<?php echo some(); ?>
<?php echo some2(); ?>
<?php echo some3(); ?>
Share Improve this question edited Jul 12, 2020 at 2:53 Chris asked Jul 12, 2020 at 2:46 ChrisChris 32 bronze badges 2
  • What are you actually trying to do? – Jacob Peattie Commented Jul 12, 2020 at 2:50
  • edited, sorry please refresh – Chris Commented Jul 12, 2020 at 2:53
Add a comment  | 

1 Answer 1

Reset to default 0

You have to think into the opposite direction: Don't pull the variables from the template, push them into it. Templates should be as simple as possible, the shouldn't know anything about the content of the rest of your code, for example function names.

In other words: use hooks.

In your template:

// the numbers are just context examples
do_action( 'something', 'one' );
do_action( 'something', 'two' );
do_action( 'something', 'three' );

In your functions.php, you add a callback to that action:

// 1, 2, 3 are your variables
add_action( 'something', function( $context ) {
    switch ( $context )
    {
        case 'one':
            echo 1;
            break;
        case 'two':
            echo 2;
            break;
        case 'three':
            echo 3;
            break;
        default:
            echo 'Context parameter is wrong!';
    }
});

You can of course also echo more than one line and do some more complex stuff in the callback handler.

发布评论

评论列表(0)

  1. 暂无评论