Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展一个简单的自定义wordpress短代码_Wordpress_Shortcode - Fatal编程技术网

扩展一个简单的自定义wordpress短代码

扩展一个简单的自定义wordpress短代码,wordpress,shortcode,Wordpress,Shortcode,我目前有一个非常基本的短代码,但我想对其进行扩展,以便能够向其添加一个参数,例如[fanColours number=3]。基本上,该参数将指示在一篇文章中显示多少图像链接 function fanColours() { return '<div class="fansc clearfix"> <h3>Available Colours</h3>

我目前有一个非常基本的短代码,但我想对其进行扩展,以便能够向其添加一个参数,例如
[fanColours number=3]
。基本上,该参数将指示在一篇文章中显示多少图像链接

function fanColours() {

            return '<div class="fansc clearfix">

                        <h3>Available Colours</h3>

                            <ul class="fan-colours clearfix">

                                <li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone_on.jpg" alt="Black" width="87" height="87"></a></li>
                                <li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone_on.jpg" alt="White" width="87" height="87"></a></li> 
                                <li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone_on.jpg" alt="Yellow" width="87" height="87"></a></li>

                            </ul>
                    </div>';
}
add_shortcode('fanColours', 'fanColours');

提前感谢您提供的任何帮助或建议,请务必容忍我,因为我仍处于一个相当陡峭的学习曲线上,希望我已经充分解释了事情。

提取
采用关联数组并将每个键转换为变量。因此在本例中,
$number
默认值为3。这是因为shortcode_atts将
$atts
与您给定的数组进行比较,如果
$atts
中未设置值,则将其设置为数组中的值

我想你只需要知道这些?还是你也需要“魔法”的帮助

根据第一条评论进行编辑:

因此,现在您有了要显示的最大链接数。有很多方法可以做你想做的事。但有一种方法是这样的:

<?php
$links=array();
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone_on.jpg" alt="Black" width="87" height="87"></a></li>';
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone_on.jpg" alt="White" width="87" height="87"></a></li>';
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone_on.jpg" alt="Yellow" width="87" height="87"></a></li>'

$number = ($number < 0) ? 0 : $number;
$nr_of_links = ( $number < count( $links ) ) ? $number : count( $links );

for( $i = 0; $i < $nr_of_links; $i++ ) {
    echo $links[$i];
}
?>


火车在哪里?是三元运算符,您可以在这里阅读:

感谢您的描述性回答,它确实为这件事提供了一些线索!不幸的是,如果不是太麻烦的话,我仍然需要一些小的帮助来实现“魔法”!没问题,真的,我只是不确定这是否是问题的一部分。我更新了一些代码,可以满足你的需要。你需要用它来替换你的列表。谢谢你的帮助-我已经为上面的问题添加了你提供的代码(我希望可以),供其他“学习者”使用。
<?php
$links=array();
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/black_bone_on.jpg" alt="Black" width="87" height="87"></a></li>';
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/white_bone_on.jpg" alt="White" width="87" height="87"></a></li>';
$links[]='<li class="fleft"><a href="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone.jpg"><img src="' . get_bloginfo('url') . '/content/uploads/2013/01/yellow_bone_on.jpg" alt="Yellow" width="87" height="87"></a></li>'

$number = ($number < 0) ? 0 : $number;
$nr_of_links = ( $number < count( $links ) ) ? $number : count( $links );

for( $i = 0; $i < $nr_of_links; $i++ ) {
    echo $links[$i];
}
?>