构建一个需要按流组织内容的wordpress网站 - 例如机械,电气等。此外,每个页面都需要新闻,文章活动等部分。如果你选择一个页面(比如机械),它必须有以下部分
其他流也将具有相同的部分
是否有用于实现的插件,或者我最好为每个垂直构建模板页面并编写php代码?带有单个部分的页面的显示代码。
<?php
$args = array(
'posts_per_page' => 1,
'category_name' => 'news',
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true
);
$posts_array = get_posts( $args );
$the_query = new WP_Query($args);
//EXAMPLE NEWS SECTION
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
the_content();
echo $content;
}
} else {
// no posts found
}
?>
答案 0 :(得分:1)
在我看来,你可以写一个插件来进行过滤。 所谓的插件在shortcode上会有一些参数(例如类别),并会返回或回显与该类别相关的所有帖子。
短代码注册:
add_action('init','register_shortcode');
function register_shortcode(){
add_shortcode('shortcode_name', 'shortcode_function');
}
短代码功能:
function shortcode_function($attr){
$attr = shortcode_atts(array('category' => 'default'),$attr); //Setting defaults parameters
$args = array(
'category_name' => $attr['category'],
'orderby' => 'date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
//echo other html related stuff
the_title();
the_content();
}
}
}
用法
[shortcode_name category='news']
[shortcode_name] //category defaults at 'default'
在你的情况下,页面可能是那样的
<div>
News : <br/>
[shortcode_name category='news']
</div>
<div>
Articles : <br/>
[shortcode_name category='articles']
</div>
<div>
Events : <br/>
[shortcode_name category='events']
</div>
答案 1 :(得分:1)
我认为没有一个正确的方法来做到这一点......这取决于场景......有多少帖子,部分或“主要流”的添加频率/改变,你需要页面上的其他东西等。
一个非常简单且易于维护的解决方案是:
1.
将mechanical
,electrical
等添加为news
,articles
和events
2.
修改(或添加)category.php
以重复循环三次,并仅显示属于每个部分的帖子(其他类别):
//Loop your sections
foreach(array('news', 'articles', 'events') as $category) {
echo '<h2>' . $category . '</h2>';
//Loop posts
while ( have_posts() ) {
the_post();
//Check if post is in section (by slug!)
if ( in_category($category) ) {
the_title();
the_content();
}
}
//Start the loop over
rewind_posts();
}
现在只需将每个帖子分配给一个(或多个)“父母”,fx mechanical
,以及news
,articles
或{{1}中的一个(且仅一个) }} ...
events
的存档页面,则会有三个部分mechanical
你得到所有新闻(但也有两个空白部分,所以你当然应该检查一下)。请注意,如果您愿意,可以使用代码甚至是自定义分类法来完成此操作,您只需要编辑其他主题文件 - 请参阅template hierarchy。
请注意,这对分页效果不会很好,所以如果这是一个问题,将需要处理。