2

I am trying to generate some extra money for our single income family this holiday season by building an affiliate site to sell. However, after much research and little help from the WordPress forum:

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

I am in desperate need of some PHP code to randomly select a do_shortcode from an array based on the conditional category - similar to the Widget Logic plugin but for shortcodes.

I am currenty using:

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

in my single.php page at www.AvengersCollectibles.com/wp to display the shortcode for my "Azon Pro Shopping List" that appears at the bottom of my single post pages but need some code to randomly show 1 of 5 such lists from an array based on each of the 9 categories/characters.

Thus far, something like the following was recommended:

<?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]");
}

?>

but I keep receiving the following error message:

Method Not Implemented GET to /wp/wp-admin/theme-editor.php not supported. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Any help would be greatly appreciated and I welcome all comments, concerns, or questions you may have.

PS: I will gladly offer access if necessary and a royalty upon my sale of the site if you are able to successfully solve this problem.

4

1 回答 1

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]");
}
?>

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

短代码从每个访问的单个帖子中的对应类别中打印一个随机数。

于 2012-12-09T02:55:53.887 回答