Niphellin dediği gibi yaparsanızda olur ama veritabanından fonksiyon okuduğu için sitenizde veritabanınız fazla büyükse ufakda olsa yavaş açılma olur.
function random_posts($ms_catID, $excerpt = '', $numPosts = '5', $customField = '', $customValue = '') {
// returns an array of posts
global $wpdb;
$postSQL = "SELECT $wpdb->post2cat.post_id, $wpdb->post2cat.category_id, $wpdb->posts.ID, $wpdb->posts.post_title, $wpdb->posts.post_excerpt";
if ( $customField ) $postSQL .= ", $wpdb->postmeta.post_id, $wpdb->postmeta.meta_key, $wpdb->postmeta.meta_value";
if ( $includeExcerpt )
{
$postSQL .= ", $wpdb->posts.post_excerpt";
}
$postSQL .= " FROM $wpdb->post2cat, $wpdb->posts";
if ( $customField ) $postSQL .= ", $wpdb->postmeta";
$postSQL .= " WHERE $wpdb->post2cat.category_id = '$ms_catID' AND $wpdb->posts.ID = $wpdb->post2cat.post_id AND $wpdb->posts.post_status = 'publish'";
// If the custom field is defined add it to the SQL
if ( $customField )
{
$postSQL .= " AND $wpdb->postmeta.meta_key = '$customField' AND $wpdb->postmeta.meta_value = '$customValue' AND $wpdb->postmeta.post_id = $wpdb->posts.ID";
}
$postSQL .= " ORDER BY RAND() LIMIT $numPosts";
$ms_articles = $wpdb->get_results($postSQL);
if ( $ms_articles ) {
foreach ( $ms_articles as $item ) {
$ms_posts[] = array( 'title'=>str_replace('"','',stripslashes($item->post_title)),
'permalink'=>post_permalink($item->ID),
'excerpt'=>$item->post_excerpt
);
}
return $ms_posts;bu kodları silerseniz rastgele yazıları göstermez.