在网站上, 每个产品都是一个帖子, 但是当我们添加新产品时, 我们希望获得时事通讯之类的东西, 主要是帖子, 因此在主页的边栏中你可以看到当月的新产品或事件。
我使用的页面是因为我不想在每个新的新闻通讯上重新发布产品, 所以我很想在页面内显示帖子。
在产品页面中, 我将每个产品按类别和子类别分开, 但是由于我想对特定帖子进行分组以将其发布在侧栏上, 因此我认为页面是实现此目的的最佳方法。
现在, 我正在使用以下代码:
<
?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="http://www.srcmini.com/<
?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’ );【在WordPress页面上显示特定帖子】更新
尝试更改此:
'name'=>
array($names),
对此:
'name'=>
$names,
‘ name’ -和’ pagename’ -参数不包含在数组中。只有一个字符串。用逗号分隔的列表应该在” 名称” 的” 自定义字段” 中为你提供所需的内容, 尽管我尚未测试过这种方法。
另外, 感谢你使用WP_Query而不是query_posts。
推荐阅读
- 显示所有注册用户(不仅是作者)的简单公共用户配置文件
- 在表格WordPress中显示自定义帖子类型
- after_setup_theme和init动作钩子之间的区别()
- WordPress上不同页面的不同侧边栏
- 不同用户角色的不同菜单
- 检测文件是否存在于wordpress主题中()
- CSS下拉菜单未正确对齐
- Hive入门之数据类型
- 网络编程(part11)--socket模块方法及socket套接字属性