我有一个wordpress包含大约1000个帖子,我想在加载后在每个帖子的中间添加默认文本(HTML格式)。因此,将来我可以立即更改此文本,如果需要,可以显示另一个文本。
我找到了在&之后添加文字的功能在帖子之前,但没有用于在帖子内添加内容。
我认为我可以在第一</p>
有没有解决方案?
答案 0 :(得分:1)
是否有可用于添加文字的公共div或标记?
示例:
<div id="first">Lorem ipsum</div>
<!-- where you want text -->
<div id="second">Lorem ipsum</div>
也许添加到single.php的jQuery脚本可以工作吗?
<script>
$( "#first" ).after( "<p>My inserted text.</p>" );
</script>
答案 1 :(得分:1)
我认为WordPress shortcodes
可以为您提供帮助。在每篇文章中你都要提到像这样的短代码。 [Myshortcode]
并且您可以在function.php
中定义功能。
简单示例
//[foobar]
function foobar_func( $atts ){
return "foo and bar";
}
add_shortcode( 'foobar', 'foobar_func' );
这将创建[foobar]短代码,返回为:foo和bar
这里是详细说明的link
对于基于jquery的解决方案,在第一个p
之后放置内容,你可以做这样的事情。
$("#mydiv p:first-child").after("<div>Here is my html</div>");
小提琴是HERE
答案 2 :(得分:0)
我在下面的代码中找到并添加到function.php中,效果很好
<?php
//Insert ads after second paragraph of single post content.
add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
$ad_code = '<div>Ads code goes here</div>';
if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 2, $content );
}
return $content;
}
// Parent Function that makes the magic happen
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
$closing_p = '</p>';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $paragraph_id == $index + 1 ) {
$paragraphs[$index] .= $insertion;
}
}
return implode( '', $paragraphs );
}
?>
答案 3 :(得分:0)
最简单的方法是: 1-在帖子内容之后的“显示:无;”中添加HTML代码。容器 2-在该容器下添加小javascript:
var containerID = document.getElementById("container");
var middle-Post-Elements = document.getElementsByClassName("middle-Element-class");
var i;
for (i = 0; i < middle-Post-Elements.length; i++) {
middle-Post-Elements[i].innerHTML = containerID.innerHTML;
}
3-现在,在您希望代码出现的地方,只需在您的帖子编辑器中添加此HTML标记即可:
<div class="middle-Element-class"></div>