Adăugarea unei clase div sau id în interiorul the_content()
Încerc să creez un bloc publicitar care să fie plasat într-o postare individuală (single.php) astfel încât clasa sau id-ul div să fie aliniat la stânga iar conținutul postării să fie aranjat în jurul lui. Am verificat fișierul single.php și acesta este singurul fragment de cod pe care l-am observat că afișează postarea.
<div class="entry entry-content">
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pagini:', 'themejunkie' ), 'after' => '</div>' ) ); ?>
Am încercat să adaug codul atât deasupra div-ului 'entry-content' cât și după the_content, dar cu ambele metode acesta afișează div-ul fie la începutul, fie la sfârșitul conținutului postării.
Poate cineva să-mi spună în care fișiere trebuie să mă uit pentru a adăuga acest lucru?

De ce să nu folosești pur și simplu hook-ul de filtrare the_content
și să adaugi codul tău la the_content()
? De exemplu:
function mytheme_content_ad( $content ) {
$myadcode = '<div class="someclas">';
$myadcode .= 'un șir de caractere cu codul de reclamă';
$myadcode .= '</div>';
$filteredcontent = $myadcode . $content;
return $filteredcontent;
}
add_filter( 'the_content', 'mytheme_content_ad' );
Poate fi nevoie să faci funcția puțin mai avansată decât aceasta, dar ar trebui să transmită ideea generală.

Trebuie să plasați blocul de publicitate chiar înainte de <?php the_content(); ?>
într-un strat div separat și să adăugați niște CSS. De exemplu:
single.php
<div class="entry entry-content">
<div class="advertisement">
<p>Publicitatea dvs.</p>
</div>
<?php the_content(); ?>
</div>
CSS
div.advertisement {
float: left;
width: 150px;
padding: 0px 10px 10px 0px;
}

Mulțumesc, Roman. Acum am o nouă problemă. Blocul div apare aliniat la stânga la începutul tag-urilor <p> din postare. Există o modalitate de a muta acest bloc, să zicem, la 200px mai jos și de a face postarea WordPress să se înfășoare în jurul acestui anunț? Dacă folosesc margin-top: 200px, lasă un spațiu gol.

De data aceasta, CSS-ul nu este suficient. Dacă dorești să plasezi un anunț în interiorul conținutului tău actual, trebuie să: a) incluzi anunțul în postarea ta în timpul editării folosind un shortcode sau b) să adaugi un filtru pentru the_content()
care va împărți conținutul în părți, va adăuga anunțul tău și va afișa noul conținut.

@Sledge81 O problemă nouă nu aparține unui comentariu. Te rog folosește opțiunea Pune o Întrebare pentru aceasta. Altfel, nimeni altcineva nu va găsi soluția. Întrebările pure despre CSS aparțin de StackOverflow...

Adaugă înaintea div.advertisement
un alt div.spacing
și adaugă .spacing{float:left;width:1px;height:200px}
. div.advertisement
va avea nevoie apoi de clear:left
. Ezit să modific atât de mult răspunsul tău.

Folosind exemplul pentru a adăuga clase la tag-ul p și tag-ul h2.
<?php
function replace_content($text_content)
{
if (is_page()) {
$text = array(
'<p>' => '<p class="text-danger">',
'<h2>' => '<h2 class="h2">',
);
}
$text_content = str_ireplace(array_keys($text), $text, $text_content);
return $text_content;
}
add_filter('the_content', 'replace_content');
?>
