如果WordPress中有新帖子,如何显示通知栏?

时间:2014-11-30 21:57:59

标签: javascript php wordpress

我的WordPress网站顶部有一个提醒栏,当我的博客上发布了一篇新帖子时。因此,众所周知,有一个新帖子可用。

所以我下载了一个名为:WPFront Notification Bar的WordPress插件 唯一的问题是我只能打开或关闭此栏。但是当有新帖子时不会自动显示此栏,并且在一天后它会将值重置为关闭,并且只有在有新帖子时才会切换回打开。

所以我想如果我在我的header.php插件中添加一个通知栏,请将其设置为我的网站并添加一些javascript。唯一的问题是,我不知道如何做到这一点,也无法在互联网上找到一些东西,所以这个问题的原因写在上面。

1 个答案:

答案 0 :(得分:1)

我会用一些代码与一个插件来解决这个问题。

修改模板(最好是儿童主题)可能是page.php或header.php,取决于你的主题。添加一个函数到functions.php来查询帖子的数量,因为你想要你的窗口。如果帖子返回输出html,以创建符合您口味的警报栏;如果你愿意,你可以显示帖子数。

编辑: 我在下面修改了你的代码。 get_post_types接受三个参数。你提供了第一个,另外两个是可选的。第三个参数$运算符默认为'和'。您要求提供公开且不是内置类型的帖子类型列表;那只会让你回归CPT。添加下面的第二个和第三个参数会询问公共或非内置的帖子类型。

$args = array(
    'public'   => true,
    '_builtin' => false
);

$output = 'names'; // default = 'names'
$operator = 'or';  // default = 'and'

$post_types = get_post_types( $args, $output, $operator );

foreach ( $post_types as $post_type ) {

    echo '<p>' . $post_type . '</p>';

   $args = array( 'numberposts' => '1', 'post_type' => $post_type); // replace n with the number of posts
   $recent_posts = wp_get_recent_posts( $args );

   foreach( $recent_posts as $recent ){
       echo '<a href="' . get_permalink($recent["ID"]) . '" title="' . $recent["post_title"] . '" >' .   $recent["post_title"] . '</a>';
   }

}

上面的代码将返回:

Array
    (
        [post] => post
        [page] => page
        [attachment] => attachment
        [my-cpt] => my-cpt
    )

假设您不想退回网页或附件,只想要内置的帖子&#39;和您的自定义帖子类型,您可以跳过对get_post_types的调用,只需创建一个阵列以满足您的需求:

$post_types = array( 'post', 'my-cpt' );

如果您不总是知道CPT的名称(即通过插件创建),或者您有许多CPT,则可以像以前一样调用get_post_types,然后添加&#39; post&#39;到$ post_types数组。

$args = array(
    'public'   => true,
    '_builtin' => false
);
$post_types = get_post_types( $args );
$post_types['post'] = 'post';
相关问题