📜  wordpress 删除侧边栏中的当前帖子 php (1)

📅  最后修改于: 2023-12-03 14:48:32.442000             🧑  作者: Mango

Wordpress 删除侧边栏中的当前帖子 PHP

在WordPress网站中,通常会有侧边栏来展示相关信息,它可能包括最新帖子、分类、标签云等。但是有时你可能希望删除侧边栏中的当前帖子,使其不再显示。本文将介绍如何使用PHP代码实现这个功能。

步骤一: 打开WordPress网站的主题编辑页面

进入WordPress管理后台,找到主题编辑页面。在这个页面中,你可以编辑各种主题文件,包括style.css、header.php、footer.php等。本文中我们需要编辑single.php文件。

步骤二: 找到并编辑single.php文件

在主题编辑页面中,找到single.php文件并点击它。这个文件通常用于显示单篇文章的内容。

在single.php文件中,找到侧边栏的代码块。通常这个代码块的开头会包含类似以下的代码:

<div id="sidebar">
    <!-- Sidebar content goes here -->
</div>

在这个代码块中,通常会使用WordPress的函数来获取相关信息,例如获取最新帖子:

<?php
    // Get the five most recent posts
    $args = array( 'numberposts' => 5 );
    $recent_posts = wp_get_recent_posts( $args );
?>

为了删除侧边栏中的当前帖子,我们需要在这个代码块中添加代码来实现。

步骤三:添加代码并保存文件

在single.php文件中,我们可以使用WordPress的函数来获取当前文章的ID,然后使用PHP的循环语句遍历侧边栏中的帖子,并删除当前帖子。

<?php
    // Get the ID of the current post
    $current_post_id = get_the_ID();

    // Get the five most recent posts
    $args = array( 'numberposts' => 5 );
    $recent_posts = wp_get_recent_posts( $args );

    // Loop through the recent posts and remove the current post
    foreach ( $recent_posts as $key => $post ) {
        if ( $post['ID'] == $current_post_id ) {
            unset( $recent_posts[ $key ] );
        }
    }
?>

上面的代码首先获取了当前文章的ID,然后使用wp_get_recent_posts()函数获取最近的五篇文章。使用foreach循环语句遍历$recent_posts数组,并判断帖子的ID是否等于当前帖子的ID。如果相等,就从数组中删除该帖子。

使用以上代码可以删除侧边栏中的当前帖子。接下来,你只需要保存single.php文件即可。

下面是完整的single.php文件代码片段:

<?php
    // Get the ID of the current post
    $current_post_id = get_the_ID();

    // Get the five most recent posts
    $args = array( 'numberposts' => 5 );
    $recent_posts = wp_get_recent_posts( $args );

    // Loop through the recent posts and remove the current post
    foreach ( $recent_posts as $key => $post ) {
        if ( $post['ID'] == $current_post_id ) {
            unset( $recent_posts[ $key ] );
        }
    }
?>
<div id="sidebar">
    <!-- Sidebar content goes here, without the current post -->
    <?php foreach ( $recent_posts as $post ) { ?>
        <ul>
            <li>
                <a href="<?php echo get_permalink( $post['ID'] ); ?>">
                    <?php echo $post['post_title']; ?>
                </a>
            </li>
        </ul>
    <?php } ?>
</div>

以上代码片段已经将侧边栏中的当前帖子从最新帖子列表中删除,你可以根据自己的实际需求修改代码,并保存single.php文件。

参考文献: