是否为用户提供选择全文索引页或摘录索引的选项?

时间:2011-05-12 作者:Leanne

我想知道是否有一种方法可以让用户在两种显示帖子的格式(索引/存档/搜索结果模板选项)之间进行选择-查看完整帖子或摘录?

因此,在主页上,您可以设置“查看完整帖子”,并保存该设置,以便每次观众访问时,他们都会收到完整的帖子索引模板,而不是摘录的模板(反之亦然)-如何实现这一点?

3 个回复
SO网友:Chris_O

在我写这篇文章的时候,米洛狠狠地揍了我一顿,但我会详细说明他的答案。

设置cookie的简单方法是jQuery Cookie.

下载插件,并通过wp\\u enqueue\\u脚本将cookie js包括在内,jquery作为依赖项。

对于您的按钮:

<input id="excerpt_view" type="button" value="Show Excerpts" />
<input id="full" type="button" value="Show Entire Posts" />
您的js保存cookie。

jQuery(function($) {

    $(\'#excerpt_view\').click(function(e) {
         $.cookie(\'mysite_cookie\', \'true\', { expires: 30 });
    });
    $(\'#full\').click(function(e) {
         $.cookie(\'mysite_cookie\', null);
    });

});
Milo答案中的PHP条件将读取cookie。“摘录\\u查看”按钮将设置cookie并使条件返回true并显示摘录。“完整视图”按钮删除cookie,这将导致条件返回false并显示完整帖子。

SO网友:Milo

您可以设置一个cookie,然后在循环中检查它。我在过去通过一个复选框实现了这一点,该复选框连接到对一个小php脚本的ajax调用:

<?php
setcookie("mysite_cookie", "excerpt_view", time()+36000, "/");
?>
然后在循环中检查cookie是否存在:

<?php
if (isset($_COOKIE["mysite_cookie"])){
// show excerpts
} else {
// show full posts
}
?>

SO网友:Zohair Baloch

通过添加一个名为“full post display”的自定义字段,然后在主题文件中添加以下循环,您可以选择显示完整内容或摘录:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php $customdisplay = get_post_custom_values("full-post-display"); ?>

    <?php if (isset($customdisplay[0])) { ?>

        <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
        <?php the_content(); ?>

    <?php } else { ?>

        <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
        <?php the_excerpt(); ?>

    <?php } ?>
<?php endwhile; endif; ?>

结束

相关推荐

Enable page templates. How?

基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。