在每个页面上显示页面内容的开头部分 - wordpress

时间:2013-03-11 04:05:55

标签: php wordpress content-management-system wordpress-plugin

我在wordpress中构建了一个Twentyeleven模板站点,我只使用CMS中的页面(没有帖子)。我有一个名为“Classes”的页面,其页面内容将定期更新。

我想在每个页面的右上角添加一个正方形,显示“类”页面的开头部分,下面的“更多”链接可以将人们引导到“类”页面。

目前,我刚刚在content-page.php中添加了一个html div,因为我正在学习。是否有插件可以实现我的目标?或者你可以给我一些关于如何编码的指示(一些建议的代码或学习链接会有帮助)?

谢谢。

2 个答案:

答案 0 :(得分:2)

如果您尝试在PHP中执行此操作,可以尝试使用此类

<?php         
    $page_id = 11; //set page ID
    $page_data = get_page($page_id);
    $title = $page_data->post_title;
    $permalink = get_permalink($page_id);
    echo '<a href="'. $permalink .'">'. $title . '</a>';
    echo '<p>' . the_excerpt() . '<a href="'. $permalink . '">Read more</a></p>';
?>

如果您需要此脚本的页面ID,可以使用此

<?php
     $pages = get_pages();
     foreach ( $pages as $page ) {
         echo 'ID: '. $page->ID . ' title: ' . $page->post_title.'<br>';
     }
?>

如果您尝试基于小部件执行此操作,则需要确保执行这些步骤。

在Twenty Twelve主题中,您在小部件部分中有一个名为主要侧边栏的部分。在此区域中,您可以添加所需的小部件,并确保您希望小部件所在的所有页面设置为“默认主题”,而不是“完整” -width页面模板,没有侧栏“。

此外,我不知道您是否对代码进行了任何更改,但如果您有,则需要确保您的wp-content / themes / twentytwelve / index.php在页脚部分之前仍然具有此功能。

<?php get_sidebar(); ?> 

如果要扩大窗口小部件区域,可以篡改控制宽度的CSS,但要注意这可能会影响容器内物品的稳定性。

wp-content / themes / twentytwelve / style.css

第1446行 - 第1449行

编辑

的宽度
.widget-area {
    float: right;
    width: 26.041666667%;
}

如果编辑了以前的值,您还需要编辑主网站内容以获得适当的比例百分比。

第1437至1440行

.site-content {
    float: left;
    width: 65.104166667%;
}

答案 1 :(得分:1)

您不必使用插件

根据您的需要,您可以通过编辑模板文件轻松完成您想要实现的目标。我将建议最简单的解决方案,但也许您可以将此代码段转换为小部件,以实现更动态/可维护的用途。

  1. 编辑page.php模板文件,以便在Wordpress安装的每个页面中显示一些内容。

  2. 为您的方框设置所需的布局(可能<div>包含一些float: right)。

  3. 获取您想要的页面并将其存储到php变量中,如下所示:<?php $page = get_page( $page_id ); ?>

  4. 使用<!--more-->获取stripos代码的位置。

  5. 使用<!--more-->仅获取substr代码前的部分。

  6. 应用the_content过滤器,然后echo

  7. 您的代码看起来有点像这样:

    <div class="right-info">
        <?php
        $page = get_page(id);
        $more_tag = stripos( $page->post_content, '<!--more-->' );
        $excerpt = substr( $page->post_content, 0, $more_tag ); 
        echo apply_filters('the_content', $excerpt);
        ?>
    </div>