如何使用wordpress将页面摘录显示为小部件?

时间:2012-08-30 21:12:54

标签: wordpress widget sidebar

我正在建立一个网站并使用wordpress作为CMS。 我有一个有一些小部件就绪区域的首页。 我还有其他几个静态页面(比如'关于我') 这些页面有摘录(在“更多”行之上)和正文(在更多行之下)。

我已经尝试了好几个小时,但我找不到一个好的插件或一些有用的代码,让我在小部件区域(侧边栏)中显示某个页面的摘录。

如果有人能帮助我,那就太棒了......

3 个答案:

答案 0 :(得分:1)

您可以使用插件执行此操作,但自己实现它可能更有益。它根本不是很复杂。您必须做两件事才能在窗口小部件中获取帖子摘录。默认情况下,WordPress不允许您在窗口小部件中运行php。要解决此问题,请转到functions.php文件,并在文件底部添加以下代码:

add_filter('widget_text', 'execute_php', 100);

function execute_php($html) {
    if (strpos($html,"<"."?php")!==false) {
        ob_start();
        eval("?".">".$html);
        $html=ob_get_contents();
        ob_end_clean();
    }
    return $html;
}

这允许您在窗口小部件中运行PHP代码。有了它,转到您的小部件菜单并将新文本框拖到侧边栏并将以下代码放入文本框中:

<?php
    global $post;
    $tmp_post = $post;      
    $args = array( 'numberposts' => 5, 'category__in' => array(11));
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post);
        the_excerpt();
    endforeach;
    $post = $tmp_post;
?>

此代码将通过并输出除类别11中的前五个帖子之外的其他内容。您可以明显修改代码以获取您要查找的任何特定结果。如果您需要为您的特定情况更直接地定制代码,请告诉我,我会帮助您。

答案 1 :(得分:1)

尝试使用此代码进行摘录..

<?php query_posts('cat=ID'.'&showposts=NO. OF POST') ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php the_post_thumbnail(); ?>
<p><?php echo substr(get_the_excerpt(), 0,65).' [...]'; ?></p>
<a href="<?php the_permalink(); ?>">Read More...</a>


<?php endwhile; ?>
<?php wp_reset_query(); ?>
<?php endif;?>

更改类别ID和帖子的限制......

答案 2 :(得分:0)

首先,您必须安装PHP Code Widget插件。

将此插件小部件拖到侧栏上并将此代码放在那里

<?php

// The Query
$the_query = new WP_Query( 'pagename=your page slug' );

// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
echo '<li>';
the_content('Read more...');
echo '</li>';
endwhile;

// Reset Post Data
wp_reset_postdata();

?>

希望这会有所帮助