Wordpress:基于类别的数组随机短代码

时间:2012-12-07 21:31:25

标签: php wordpress random conditional shortcode

我试图通过建立一个联盟网站来为我们的单一收入家庭节省一些额外的钱。然而,经过大量研究和WordPress论坛的帮助很少:

http://wordpress.org/support/topic/u...3#post-3318897

我迫切需要一些PHP代码来根据条件类别从数组中随机选择一个do_shortcode - 类似于Widget Logic插件,但是用于短代码。

我现在正在使用:

<?php echo do_shortcode("[asle id=15]"); ?>

在我的single.php页面www.AvengersCollectibles.com/wp上显示我的“Azon Pro购物清单”的短代码,该代码显示在我的单个帖子页面的底部,但是需要一些代码随机显示5个中的1个这样的基于9个类别/字符中的每一个的数组列表。

到目前为止,建议采用以下内容:

<?php $ids = array( 43, 15, 8 ); // Default

if (in_category('Captain America')):
   $ids = array( 15, 16, 17, 19, 20 );
elseif (in_category('Spiderman')):
   $ids = array( 35, 36, 37, 39, 50, 5, 70 );
elseif (in_category('Green Hornet')):
   $ids = array( 75, 6, 22, 49 );
endif;
$id = 0;
if ( ! $id ) {
   $key = array_rand( $ids, 1 );
   $id=$ids[$key];
   echo do_shortcode("[asle id=$id]");
}

?>

但我一直收到以下错误消息:

未实施的方法 GET到/wp/wp-admin/theme-editor.php不受支持。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。

非常感谢任何帮助,欢迎您提出所有意见,疑虑或问题。

PS:如果您能够成功解决此问题,我将很乐意在必要时提供访问权限并在我出售该网站时提供版税。

1 个答案:

答案 0 :(得分:0)

如果我把它放在我的functions.php

add_shortcode( 'asle', 'so_13771287_random_shortcode' );

function so_13771287_random_shortcode( $atts ) 
{
    return 'Random ID = ' . $atts['id'];
}

您在single.php中的确切代码:

<?php $ids = array( 43, 15, 8 ); // Default

if (in_category('Captain America')):
   $ids = array( 15, 16, 17, 19, 20 );
elseif (in_category('Spiderman')):
   $ids = array( 35, 36, 37, 39, 50, 5, 70 );
elseif (in_category('Green Hornet')):
   $ids = array( 75, 6, 22, 49 );
endif;
$id = 0;
if ( ! $id ) {
   $key = array_rand( $ids, 1 );
   $id=$ids[$key];
   echo do_shortcode("[asle id=$id]");
}
?>

它对我有用。
是的,我创建了所有超级英雄类别进行测试。

短代码会在每个访问过的单个帖子中打印一个相应类别的随机数。