函数将数组传递给已定义的键

Cod*_*ver 1 php arrays wordpress function

我创建了一个函数来获取帖子缩略图和后退图像。

<?php
function png_thumb($class=null,$thumbsize=null,$no_thumb,$imgclass=null,$extras=null,$hover_content=null){

    $title_attr = array(
        'title' => get_the_title(),
        'alt' => get_the_title(),
        'class' => $imgclass
    );  ?>


    <div class="<?php echo $class ?>">
        <a href="<?php the_permalink(); ?>" title="<?php //the_title(); ?>">
            <?php if ( has_post_thumbnail() ) {
                the_post_thumbnail($thumbsize, $title_attr);
            } else { ?>
                <img src="<?php bloginfo('template_directory'); ?>/images/<?php echo $no_thumb ?>" alt="<?php the_title(); ?>" class="<?php echo $imgclass; ?>" <?php echo $extras; ?> />
            <?php } ?>                          
        </a>
        <?php if($hover_content != "") { ?>
        <a href="<?php the_permalink(); ?>"><div class="hovereffect"><?php echo $hover_content; ?></div></a>
        <?php } ?>
    </div>

<?php } ?>
Run Code Online (Sandbox Code Playgroud)

但是我相信传递数组会比这更好。但是我不知道如何创建可以通过预定义键传递的函数。与$ title_attr分配的array()相同。或wordpress $ args的工作方式。

dec*_*eze 5

PHP不能理解“使用预定义键传递数组”的概念。您可以简单地做到这一点:

function png_thumb(array $args = array()) {
    $args += array('class' => null, 'thumbsize' => null, 'no_thumb' => null, 'imgclass' => null, 'extras' => null, 'hover_content' => null);

    echo $args['class'];
    ...
Run Code Online (Sandbox Code Playgroud)

此函数接受一个数组,并填充所有未使用默认值传递的键。您可以像这样使用它:

png_thumb(array('thumbsize' => 42, ...));
Run Code Online (Sandbox Code Playgroud)