Php 在WordPress页面上显示特定帖子

Php 在WordPress页面上显示特定帖子,php,wordpress-theming,wordpress,Php,Wordpress Theming,Wordpress,在网站上,每种产品都是一篇文章,但是当我们添加新产品时,我们想要一份时事通讯之类的东西,主要是一篇文章,这样你就可以在主页的侧栏中看到当月的新产品或活动 我使用页面是因为我不想在每一份新的时事通讯上重新发布一个产品,所以我不想在页面内显示帖子 在产品页面中,我将每个产品按类别和子类别分开,但由于我想将特定的帖子分组,以便在侧边栏上发布它们,我认为页面是最好的方式 现在我正在使用以下代码: <?php $productos = new WP_Query(array( 'post__in'=&

在网站上,每种产品都是一篇文章,但是当我们添加新产品时,我们想要一份时事通讯之类的东西,主要是一篇文章,这样你就可以在主页的侧栏中看到当月的新产品或活动

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

在产品页面中,我将每个产品按类别和子类别分开,但由于我想将特定的帖子分组,以便在侧边栏上发布它们,我认为页面是最好的方式

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

<?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();
?>
因此,每次我发布一个新页面时,我只是在一个自定义字段中写下我想包含在页面中的帖子的片段,正如你所看到的,我对php不是很在行,但我正在努力学习,在这里询问之前,我搜索了很多有用的东西

我尝试了ggis内联帖子插件,虽然它可以工作,但我需要每个帖子的id,我想包括,我需要编辑插件,因为我想在帖子的输出中有一个不同的顺序,这就是为什么我不喜欢太依赖插件

更新:

<?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();
?>
所以我现在正在寻找是否可以使用短代码来实现这一点,现在我有了这个:

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_func($atts){
提取(短码)附件(数组)(
“nombre”=>“
)美元(附件);;
全球$员额;
$pieza=get_page_by_title($nombre,OBJECT,'post');
回显“.$pieza->ID.”;
}
添加_短代码('producto','producto_func');
在这里输入代码
因此,我只需在页面中输入短代码
[producto nombre=“ff 244”]
,它就会显示其ID,并且我可以根据需要的帖子数量添加任意数量的短代码。 但是我怎样才能显示帖子的全部内容呢

有什么想法吗?

来自:

按slug显示post

$query=newwp_查询('name=about my life')

按段塞显示页面:

$query=newwp_查询('pagename=contact')

更新

尝试更改此选项:

'name'=> array($names),
为此:

'name'=> $names,
“name”和“pagename”参数不接受数组。只有一串。逗号分隔的列表应该可以从名为“name”的自定义字段中提供所需的内容,尽管我还没有测试过这种方法


另外,感谢您使用WP\u Query而不是Query\u posts。

我发现我的解决方案是使用短代码。 所以我把它放在我的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");
函数productos($atts,$content=null){
提取(短码)附件(数组)(
“鼻涕虫”=>“”,
“查询”=>“”
)美元(附件);;
全局$wp\u查询,$post;
$temp=$wp\u查询;
$wp_query=null;
$wp\u query=新的wp\u查询(数组(
'name'=>$slug,
));
如果(!空($slug)){
$query.='&name='.$slug;
}
如果(!empty($query)){
$query.=$query;
}
$wp_query->query($query);
ob_start();
?>

但是我想在页面上显示帖子,而不是其他页面,这就是为什么我使用
“name”
,我需要一个数组来显示多篇帖子。我误解了这一部分:“我使用页面是因为我不想在每一份新的时事通讯上重新发布产品,所以我不想在页面内显示帖子。”。如果您正在使用页面作为某些帖子的外壳,请查看我的更新。感谢您的帮助。我只是尝试了一下,但只接受一个值,如果我在自定义字段中放置另一个由逗号分隔的段塞无效。这就是您所说的“逗号分隔列表…”的意思吗我找到了一个使用短代码的解决方案,我将在下面发布。短代码可以起作用,还有其他一些方法。总的来说,似乎你已经把它整理好了。是的!但是谢谢你的帮助。我没有声誉,所以我现在无法回答。