【问题标题】:inserting divs after other divs via PHP通过 PHP 在其他 div 之后插入 div
【发布时间】:2013-01-19 18:12:03
【问题描述】:

我在 Wordpress 中有一个循环代码,它显示了我所有的 wordpress 帖子/div,它看起来像这样:

<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?>

当然,在那个循环中,有我的 div 帖子在其中,然后是一些结束 php 代码。但这是我想要做的,我是如何做到的,以及为什么它不起作用。

我的主页上有大约 60 个帖子,每个帖子的所有 div 类都相同(当然),我想在我的一些帖子 div 之前或之后插入其他 div。回想起来,我这样做的方式非常愚蠢。

我使用 CSS 的 nth-child 来选择我的 div 帖子,然后给它们留出边距或清除空间,以便为我要插入的其他 div 腾出空间。因此,例如,我将有 60 个帖子/div,每行 5 个 div.. 在第 10 个帖子上,我会给它说一个 margin-left,不管有多少像素为需要插入的 div 腾出空间这些帖子。然后,当它下来将 div 插入开放点时,我会将它浮动到右侧(因为需要将 div 插入右侧)以及 margin-top 的像素,直到它正确适合开放点.

我认为这可以正常工作,但由于我的帖子 div 宽度是百分比而不是像素(我的帖子是缩略图,需要根据分辨率重新缩放,所以我使用了百分比),我帖子中插入的 div 不会是当窗口改变大小或以不同的分辨率查看时,在正确的位置......那我做了什么?将需要在这些帖子旁边插入的每个 div 的所有边距值更改为百分比而不是像素...这几乎有效..唯一的问题是当您重新调整浏览器时,div插入到我的帖子中的内容会向上或向下移动 5-20 像素。这太糟糕了!

然后今天晚些时候,我顿悟了.. 它是使用 PHP 在这些帖子中插入 div,而不是我愚蠢的 CSS 意识形态,我不知道该怎么做,但我确实认为这是可能的一些奇怪的原因。

所以我需要做的是将这些名为“doublearticlewrapperad”的 div 类插入到这些其他 div 类中,这些 div 类是帖子。这些帖子类称为“doublearticlewrapper”。我希望能够将我的 doublearticlewrapperad div 类定位在其他 doublearticlewrapper 循环帖子/div 类中。所以说我想在第 6、29 和 40 个 doublearticlewrapper post div 之后插入一个 doublearticlewrapperad div。我希望能够轻松地做到这一点。如果可能的话。

只是为了消除任何混乱..

doublearticlewrapperad = divs 我想在通过我的 WordPress Loop 显示的 div 类之后插入.. 和

articlewrapperad= 通过我的 wordpress 循环显示为帖子的 div。

如果有任何方法可以做到这一点,我认为 php 将是正确的方法,但如果事实证明我错了,并且有另一种方法或不同的代码可以做到这一点.. 请告诉我。伙计们,真的很感激任何帮助,我是认真的。

【问题讨论】:

  • 60 个帖子?这将花费大量时间来加载......
  • 哈哈!它们都是缩略图,所以它们并不是真正的帖子,但它们有点......图片/缩略图或帖子或其他任何东西,这还不错……对吧?
  • 仍然是 60 张图片和 60 个 http 请求。如果您可以加载 ~20 并延迟加载其余部分,那将是最好的,但我不知道这将如何与 WordPress 一起使用。

标签: php css wordpress loops css-selectors


【解决方案1】:

试试这个花蕾!

$count = 0;
while ( have_posts() ) {
    if ( ($count % 9) == 0 ) { //this will show anything you add on the condition in every 9th posts.
        //code to output your doublearticlewrapperad should go here
    }
    // output the post
    the_post(); 
    $count++;
}

干杯!

【讨论】:

    【解决方案2】:

    我认为像下面这样的东西应该可以工作。请注意,我删除了您拥有的 if 语句,这非常无用,因为您随后使用 while 语句重复检查。

    $insert_after = array(6,29,40);
    $post_count = 0;
    while ( have_posts() ) {
        if (in_array($post_count, $insert_after)) {
            //code to output your doublearticlewrapperad should go here
        }
        // output the post
        the_post(); 
        $post_count++;
    }
    

    【讨论】:

    • 好人,我要测试一下.. 可以在 10-20 分钟内回复您吗?
    • 这根本不起作用..我将此代码发布在我的 doublearticlewrapper 循环代码上方.. 我得到的是至少 25 个 div.. 在 6、29 或 40 之后没有插入分区。它们都被一个接一个地放置为第一个div。我不知道我是否做错了什么,但这有点令人失望! :( .. 我只想要这些 div 中的 5 个 .. 我希望它们被正确放置!尽管如此,感谢到目前为止的帮助。
    • @Dyck 您接受的答案是我的答案的复制和粘贴,除了变量名称和 if 循环中使用的条件的更改。你能澄清一下修复是什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多