在网站上,每个产品都是一个帖子,但是当我们添加新产品时,我们想要一些类似于时事通讯的内容,大部分就像一个帖子,所以在主页的侧边栏中,您可以看到本月的新产品或事件。 / p>
我正在使用网页,因为我不想在每个新的简报上重新发布产品,所以我想在页面内显示帖子。
在产品页面中,我按类别和子类别分隔每个产品,但由于我想将特定帖子分组以在侧栏上发布,我认为页面是最好的方式。
现在我正在使用此代码:
<?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的帖子,我希望用'name'来显示slug的帖子,因为这是因为需要一些时间来检查新帖子的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,我可以添加任意数量的短代码,具体取决于我需要的帖子数量。
但是我怎样才能展示帖子的全部内容。
有什么想法吗?
答案 0 :(得分:1)
通过slug显示发布:
$ query = new WP_Query('name = about-my-life');
通过slug显示页面:
$ query = new WP_Query('pagename = contact');
<强>更新强>
尝试更改此内容:
'name'=> array($names),
对此:
'name'=> $names,
'name' - 和'pagename' - 参数不接受数组。只有一个字符串。以逗号分隔的列表应该在标题为“名称”的自定义字段中为您提供所需的内容,但我还没有测试过这种方法。
另外,感谢您使用WP_Query而不是query_posts。
答案 1 :(得分:1)
我找到了使用Shortcodes的解决方案。 所以我把它放在我的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”],这样我就能用slug显示多个帖子。希望有人觉得这很有用。