个性化阅读
专注于IT技术分析

在WordPress页面上显示特定帖子

在网站上, 每个产品都是一个帖子, 但是当我们添加新产品时, 我们希望获得时事通讯之类的东西, 主要是帖子, 因此在主页的边栏中你可以看到当月的新产品或事件。

我使用的页面是因为我不想在每个新的新闻通讯上重新发布产品, 所以我很想在页面内显示帖子。

在产品页面中, 我将每个产品按类别和子类别分开, 但是由于我想对特定帖子进行分组以将其发布在侧栏上, 因此我认为页面是实现此目的的最佳方法。

现在, 我正在使用以下代码:

<?php
$productos = new WP_Query(array(
'post__in'=> array(81, 83), 'orderby'=>'title', 'order'=>'ASC'
)
); if ($productos->have_posts()) : while ($productos->have_posts()) : $productos->the_post();
?>

它显示ID为81和83的帖子, 我想按抄本的说明使用”名称”按段显示帖子, 因为要花一些时间检查新帖子的ID, 而不是使用名称每个新产品, 但无法在阵列中使用, 或者我做错了。

现在我会喜欢做这样的事情

$names = get_post_meta($post->ID, "names", $single = true); 

$productos = new WP_Query(array(
'name'=> array($names), 'orderby'=>'title', 'order'=>'ASC'
)
);

因此, 每次我发布新页面时, 我只会在自定义字段中写一些我想包含在页面中的帖子的标签, 如你所见, 我对php不太满意, 但是我尝试学习, 并且搜索了在这里问之前可能有用的东西很多。

我尝试使用ggis嵌入式帖子插件, 尽管它可以工作, 但我想包含的每个帖子都需要ID, 并且我需要编辑插件, 因为我希望帖子输出中的顺序不同, 这就是为什么我不喜欢很大程度上取决于插件。

更新:

所以我现在正在寻找是否可以使用短代码来实现这一点, 现在我有了:

function producto_func($atts) {
    extract(shortcode_atts(array(
        'nombre' => ''
    ), $atts));
    global $post;
    $pieza = get_page_by_title($nombre, OBJECT, 'post');
                echo '<h1>'. $pieza->ID . '</h1>';
}
add_shortcode('producto', 'producto_func');
enter code here

因此, 我只需在页面中输入简码[producto nombre =” ff 244″]并显示其ID, 就可以根据需要的帖子数量添加任意数量的简码。但是如何显示帖子的全部内容。

任何的想法?


#1


我发现我使用短代码解决方案。所以我把它放在我的functions.php页面上

function productos($atts, $content = null) {
    extract(shortcode_atts(array(
        "slug" => '', "query" => ''
    ), $atts));
    global $wp_query, $post;
    $temp = $wp_query;
    $wp_query= null;
    $wp_query = new WP_Query(array( 
    'name'=> $slug, ));
    if(!empty($slug)){
        $query .= '&name='.$slug;
    }
    if(!empty($query)){
        $query .= $query;
    }
    $wp_query->query($query);
    ob_start();
    ?>
    <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
        <h1><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1>
        <div><?php the_content() ?></div>
    <?php endwhile; ?>

    <?php $wp_query = null; $wp_query = $temp;
    $content = ob_get_contents();
    ob_end_clean();
    return $content;
}
add_shortcode("producto", "productos");

在我的页面模板中, 我只写了[producto slug =” MY-SLUG”], 这样一来, 我就可以只显示这些条目。希望有人觉得这有用。


#2


从Wordpress Codex:

按子弹显示帖子:

$ query =新的WP_Query(‘name = about-my-life’);

按页显示页面:

$ query =新的WP_Query(‘pagename = contact’);

更新

尝试更改此:

'name'=> array($names), 

对此:

'name'=> $names, 

‘name’-和’pagename’-参数不包含在数组中。只有一个字符串。用逗号分隔的列表应该在”名称”的”自定义字段”中为你提供所需的内容, 尽管我尚未测试过这种方法。

另外, 感谢你使用WP_Query而不是query_posts。

赞(0)
未经允许不得转载:srcmini » 在WordPress页面上显示特定帖子

评论 抢沙发

评论前必须登录!