我的网站上有此页面(我是从其他开发者那里继承来的)-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/

10-14 10:50