如何在发布时从数组中随机选择和更改帖子标题?

时间:2015-11-21 作者:atub

我想用文章标题填充一个数组,并将文章标题(草稿)更改为标题数组中的随机成员。像这样的?

function set_random_title ($title)
{
  $title1[0] = "a title";
  $title1[1] = "another title";
  /*and so on*/
  $randomize = rand(0,1);
  return ($title1[$randomize]);
}
add_filter(\'the_title\', \'set_random_title\', 10, 2); 

1 个回复
最合适的回答,由SO网友:Tim Elsass 整理而成

您可以使用array\\u rand随机化数组,该数组将返回键,然后使用array\\u flip将键与值切换(即获取您的随机标题)。

钩住save\\u post,以便在实际发布帖子时分配随机标题并更新DB,而不是使用\\u title过滤器。

function save_title( $post_id ){

    global $wpdb;

    $title = array (
        \'1\' => \'another title\',
        \'2\' => \'here is again, a title\',
        \'3\' => \'random titles\',
        \'4\' => \'RANDOM TITLE\',
        \'5\' => \'ANOTHER RanDom TiTlE!\',
        \'6\' => \'titles everywhere\'
    );

    $wpdb->update( $wpdb->posts, 
        array( \'post_title\' =>  array_rand( array_flip( $title ) ) ),
        array( \'ID\' => $post_id ) ); 
}

add_action( \'save_post\', \'save_title\');

相关推荐

GET_POSTS在页面模板中工作,但不在短码中工作

我正在尝试编写一个短代码,其中包括“get\\u posts”,以便获取博客帖子数据,然后在页面上显示最近的3篇文章。此代码在模板中工作。然而,当我将其放入输出缓冲区(ob\\u start)内的短代码中时,它无法检索帖子。相反,它会获取当前页面本身并循环浏览该页面(在本例中为主页)。你知道我怎样才能让它按照最初的意图在帖子中循环吗?以下是在模板中工作的代码:<?php $lastposts = get_posts( array(\'posts_per_page\' => 3) );?>