1

我正在制作一个网站并将 wordpress 用作 CMS。我有一个首页,其中有一些小部件就绪区域。我还有其他几个静态页面(例如“关于我”)这些页面有一个摘录(在“更多”行上方)和正文(在更多行下方)。

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

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

4

3 回答 3

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 和限制...

于 2012-08-31T06:18:44.697 回答
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 中的前五个帖子之外的内容。您显然可以修改代码以获得您正在寻找的任何特定结果。如果您需要更直接地针对您的具体案例量身定制的代码,请告诉我,我会为您提供帮助。

于 2012-08-31T03:06:25.240 回答
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();

?>

希望这会有所帮助

于 2012-08-31T03:07:21.787 回答