我的网站上有此页面(我是从其他开发者那里继承来的)-http://ideedev.co.uk/newseed/brand/
如果向下滚动通过粉红色的条,您将看到“我们的工作”部分。这是投资组合自定义帖子类型。
当前实现这些的代码是:
<section id="scroll-target" class="wrapper">
<?php
$portfolio_args = array(
'post_type' => 'portfolio',
'portfolio-category' => get_field('category_to_show'),
'posts_per_page' => -1
);
$portfolio = new WP_Query($portfolio_args);
while($portfolio->have_posts()) {
$portfolio->the_post();
$post = new SeedPost(get_the_ID());
$post->display(true);
}
wp_reset_query();
?>
</section>
投资组合项目在班级中连续显示为两个:“ item--two”
我希望通过将每个项目的类别更改为'item-three'来在3行中显示这些项目,当我在浏览器中对其进行编辑时,它可以工作...
问题是,我在代码中找不到该类的位置!我在浏览器中看到了它,但是正如您从顶部的代码中看到的那样-那里没有类。
我已经检查了.js文件,看看是否可以看到它是动态分配的,但是我根本看不到它在哪里...有人会有什么想法吗?
更新...
我认为它可能来自这里,但是我不确定在哪里更改以更改投资组合以显示在三列中...
<?php
class SeedPost {
public $post_id;
public $post_type;
function __construct($post_id) {
$this->post_id = $post_id;
$this->post_type = get_post_type($this->post_id);
}
function display($twocol = false) {
global $post;
$post = get_post($this->post_id);
$cols = $twocol ? 'two' : 'three';
setup_postdata($post);
if($this->post_type == 'portfolio') {
$overlay_class = 'item__overlay--portfolio';
} else {
$overlay_class = 'item--cat-' . SeedHelpers::first_category();
}
?>
<div class="item item--<?php echo $cols; ?>">
<?php
if(has_post_thumbnail()) {
the_post_thumbnail('news-archive', array('class' => 'item--three__child'));
}
?>
<a href="<?php the_permalink(); ?>">
<div class="item__overlay <?php echo $overlay_class; ?>">
<span class="item__cat-title item__cat-title--overlay"><?php echo SeedHelpers::first_category($this->post_type); ?></span>
<h4 class="item__title"><?php the_title(); ?></h4>
<div class="item__brief">
<?php the_excerpt(); ?>
</div>
<p class="item__link"> Read </p>
</div>
</a>
</div>
<?php
wp_reset_postdata();
}
static function load_more() {
if(!isset($_GET['load_more_posts'])) {
return;
}
check_ajax_referer('load_more_posts', 'load_more_posts');
$offset = sanitize_text_field($_GET['offset']);
$posts_per_page = get_option('posts_per_page');
$query_args = array(
'post_type' => 'post',
'offset' => $offset
);
$posts = new WP_Query($query_args);
ob_start();
while($posts->have_posts()) {
$posts->the_post();
$post = new SeedPost(get_the_ID());
$post->display();
}
$output = ob_get_contents();
ob_end_clean();
$posts_used = (int)$offset + (int)$posts_per_page;
$remaining = $posts->found_posts > $posts_used ? $posts->found_posts - $posts_used : 0;
$response = array(
'posts_remaining' => $remaining,
'html' => $output
);
echo json_encode($response);
die();
}
}
最佳答案
在您的section块中,修改传递给$post->display()
的参数:
while($portfolio->have_posts()) {
$portfolio->the_post();
$post = new SeedPost(get_the_ID());
// Pass in false!
$post->display(false);
}
然后,
display()
类上的SeedPost
方法将构建您需要的标记。这是在SeedPost()
类的以下行中设置的:$cols = $twocol ? 'two' : 'three';
...这意味着如果$ twocol为true,则将$ cols设置为'two',如果$ twocol为false,则将'colour'设置为'three'。
希望这可以帮助。
关于javascript - 我的网站如何为div分配特定的类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43805129/