Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Wordpress中的X图像后在帖子中插入代码_Php_Html_Wordpress - Fatal编程技术网

Php 如何在Wordpress中的X图像后在帖子中插入代码

Php 如何在Wordpress中的X图像后在帖子中插入代码,php,html,wordpress,Php,Html,Wordpress,我们在Wordpress中有一个函数,在帖子的3段之后显示一段代码: add_filter('the_content', 'wpse_ad_content'); function wpse_ad_content($content) { if (!is_single()) return $content; $paragraphAfter = 3; //Enter number of paragraphs to display ad after. $content = ex

我们在Wordpress中有一个函数,在帖子的3段之后显示一段代码:

add_filter('the_content', 'wpse_ad_content');

function wpse_ad_content($content)
{
    if (!is_single()) return $content;
    $paragraphAfter = 3; //Enter number of paragraphs to display ad after.
    $content = explode("</p>", $content);
    $new_content = '';
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $paragraphAfter) {
            $new_content.= '<div style="col-xs-12">';
            $new_content.= 'code here';
            $new_content.= '</div>';
        }

        $new_content.= $content[$i] . "</p>";
    }

    return $new_content;
}
add_filter('the_content'、'wpse_ad_content');
函数wpse_ad_content($content)
{
如果(!is_single())返回$content;
$paragraphAfter=3;//输入要显示广告的段落数。
$content=explode(“

”,$content); $new_content=''; 对于($i=0;$i”; } 返回$new_内容; }
我们正在尝试完成包含和显示另一个代码块的函数,该代码块仅在post中包含至少8个图像(每个图像可以理解)

<img src=...

)

此块应显示在第8个图像之后,如果它们不是8个图像,则附加功能不会显示任何内容

-----编辑1: 在尝试使用@TimTroiano解决方案之后

add_filter('the_content', 'wpse_ad_content');

function wpse_ad_content($content)
{
    if (!is_single()) return $content;
    $paragraphAfter = 3; //Enter number of paragraphs to display ad after.
    $imagesAfter = 7; //Enter number of images to display code snippet after.
    $content = explode("</p>", $content);
    $new_content = '';
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $paragraphAfter) {
            $new_content.= '<div class="col-lg-12" style="text-align: center; padding-top: 10px; margin-bottom: 20px;">';
            $new_content.= '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
         <!-- La nube sobre título -->
         <ins class="adsbygoogle"
            style="display:block"
            data-ad-client=""
            data-ad-slot="7588478595"
            data-ad-format="auto"></ins>
         <script>
            (adsbygoogle = window.adsbygoogle || []).push({});
         </script>';
            $new_content.= '</div>';
        }

        $new_content.= $content[$i] . "</p>";

        if ($imagesAfter > 0) {
            $imagesAfter -= 1;
        } else {
            $new_content.= '<div class="col-lg-12" style="text-align: center; padding-top: 10px; margin-bottom: 20px;">';
            $new_content.= '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- La_Nube_4_Anuncio -->
<ins class="adsbygoogle"
    style="display:block"
    data-ad-client=""
    data-ad-slot="3663644595"
    data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>';
            $new_content.= '</div>';
            $imagesAfter = 7; //Reset number of images to display code after.
        }
    }

    return $new_content;
}
add_filter('the_content'、'wpse_ad_content');
函数wpse_ad_content($content)
{
如果(!is_single())返回$content;
$paragraphAfter=3;//输入要显示广告的段落数。
$imagesAfter=7;//输入要在其之后显示代码段的图像数。
$content=explode(“

”,$content); $new_content=''; 对于($i=0;$i”; 如果($imagesAfter>0){ $imagesAfter-=1; }否则{ $new_content.=''; $new_content.=' (adsbygoogle=window.adsbygoogle | |[]).push({}); '; $new_content.=''; $imagesAfter=7;//重置要显示代码的图像数。 } } 返回$new_内容; }
我们注意到一种奇怪的行为。 1.把课文的段落看成是图片。
2.此外,如果出现更多图像或段落(8的倍数),则重复代码块,并且只应出现一次。

感谢您发布相关代码。我添加了一个变量$imagesAfter,它将计算在添加代码片段之前插入的图像数量。当$imagesAfter达到0时,它将插入您选择插入的任何内容,并将$imagesAfter重置回原始数字

我补充说:

$imagesAfter = 7; //Enter number of images to display code snippet after.
if ($imagesAfter > 0) {
    $imagesAfter -= 1;
} else {
    **Code snippet after set number of images goes here**
    $imagesAfter = 7; //Reset number of images to display code after.
}
以下是在适当位置添加第一部分的完整代码:

function wpse_ad_content($content)
{
    if (!is_single()) return $content;
    $paragraphAfter = 3; //Enter number of paragraphs to display ad after.
    $imagesAfter = 7; //Enter number of images to display code snippet after.
    $content = explode("</p>", $content);
    $new_content = '';
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $paragraphAfter) {
            $new_content.= '<div style="col-xs-12">';
            $new_content.= 'code here';
            $new_content.= '</div>';
        }

        $new_content.= $content[$i] . "</p>";

        if ($imagesAfter > 0) {
            $imagesAfter -= 1;
        } else {
            **Code snippet after set number of images goes here**
            $imagesAfter = 7; //Reset number of images to display code after.
        }
    }

    return $new_content;
}
这将出现在您的代码中:

function wpse_ad_content($content)
{
    if (!is_single()) return $content;
    $paragraphAfter = 3; //Enter number of paragraphs to display ad after.
    $content = explode("</p>", $content);
    $new_content = '';
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $paragraphAfter) {
            $new_content.= '<div style="col-xs-12">';
            $new_content.= 'code here';
            $new_content.= '</div>';
        }
        $if ($i > 0) {
            if ($i % 8 == 0) {
                **Code snippet after set number of images goes here**
            }
        }

        $new_content.= $content[$i] . "</p>";
    }

    return $new_content;
}
函数wpse_ad_content($content)
{
如果(!is_single())返回$content;
$paragraphAfter=3;//输入要显示广告的段落数。
$content=explode(“

”,$content); $new_content=''; 对于($i=0;$i0){ 如果($i%8==0){ **设置数量的图像后的代码段将显示在此处** } } $new_content.=$content[$i]。“

”; } 返回$new_内容; }

让我知道这是否解决了您的问题,或者您是否在寻找不同的东西。

此论坛不适合为您编写代码。请发布你所拥有的,这样人们可以帮助你。如果你已经有你的PHP用foreach循环或类似的东西显示图像,只需计算一个新变量,每次它达到一定的数字时,插入代码并重置变量。例如$i=0;foreach($result as$row){print'2){Insert code here;$i=0;}}}Hi@TimTroiano很抱歉。我会编辑这个问题。@TimTroiano我刚刚编辑了这个问题。谢谢你的指导方针谢谢!!我明天再试,我会给出答案:)嗨@TimTroiano,我们尝试了两个选项,收到了sintax错误。解决sintax错误后,我们注意到一个奇怪的行为。1.把课文的段落看成是图片。2.此外,如果出现更多图像或段落(8的倍数),则会重复代码块,并且只会出现一次。您能更好地澄清您的问题吗?如果只希望代码块出现一次,则应使用与$paragraphAfter相同的方法。设置另一个变量,就像您在测试'if($i==$imageAfter){Code snippet here;}'之后对$paragration所做的那样
function wpse_ad_content($content)
{
    if (!is_single()) return $content;
    $paragraphAfter = 3; //Enter number of paragraphs to display ad after.
    $content = explode("</p>", $content);
    $new_content = '';
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $paragraphAfter) {
            $new_content.= '<div style="col-xs-12">';
            $new_content.= 'code here';
            $new_content.= '</div>';
        }
        $if ($i > 0) {
            if ($i % 8 == 0) {
                **Code snippet after set number of images goes here**
            }
        }

        $new_content.= $content[$i] . "</p>";
    }

    return $new_content;
}