Aggiungere una classe div o id all'interno di the_content()

21 mag 2011, 23:41:25
Visualizzazioni: 27.7K
Voti: 4

Sto cercando di creare un blocco pubblicitario da posizionare in un singolo post (single.php) in modo che il div con classe o id sia allineato a sinistra e il contenuto del post si disponga intorno ad esso. Ho controllato il file single.php e questo è l'unico pezzo di codice che noto per la visualizzazione del post.

<div class="entry entry-content">
                <?php the_content(); ?>
                <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pagine:', 'themejunkie' ), 'after' => '</div>' ) ); ?>

Ho provato ad aggiungere il codice sia sopra il div 'entry-content' che dopo the_content, ma con entrambi i metodi viene visualizzato il div o all'inizio o alla fine del contenuto del post.

Qualcuno può dirmi quali file devo controllare per aggiungere questo?

1
Commenti

Risolto. Era un problema con il plugin per la condivisione dei post. Ho dovuto disabilitare l'aggiunta automatica ai post e utilizzare l'opzione di inserimento manuale.

swordfish81 swordfish81
21 mag 2011 23:57:12
Tutte le risposte alla domanda 3
0

Perché non utilizzare direttamente l'hook del filtro the_content e aggiungere il tuo codice a the_content()? Ad esempio:

function mytheme_content_ad( $content ) {
    $myadcode = '<div class="someclas">';
    $myadcode .= 'qualche stringa con il codice dell\'annuncio';
    $myadcode .= '</div>';

    $filteredcontent = $myadcode . $content;

    return $filteredcontent;
}
add_filter( 'the_content', 'mytheme_content_ad' );

Potresti aver bisogno di rendere la funzione un po' più elaborata di così, ma questo dovrebbe trasmettere l'idea generale.

22 mag 2011 02:41:50
5

Devi inserire il tuo blocco pubblicitario appena prima di <?php the_content(); ?> in un div separato e aggiungere un po' di CSS. Ad esempio:

single.php

<div class="entry entry-content">
    <div class="advertisement">
        <p>La tua pubblicità</p>
    </div>

    <?php the_content(); ?>
</div>

CSS

div.advertisement {
    float: left;
    width: 150px;
    padding: 0px 10px 10px 0px;
}
22 mag 2011 00:05:28
Commenti

Grazie roman. Ora ho un nuovo problema. Il blocco div appare allineato a sinistra all'inizio dei tag <p> nel post. C'è un modo per spostare questo blocco, ad esempio, di 200px sotto e fare in modo che il post di WordPress si avvolga intorno a questo annuncio? Se uso margin-top: 200px, lascia uno spazio bianco.

swordfish81 swordfish81
22 mag 2011 00:11:19

Questa volta, il CSS non basta. Se vuoi inserire un annuncio all'interno del tuo contenuto effettivo, devi a) includere l'annuncio nel tuo post durante la modifica con un shortcode oppure b) aggiungere un filtro per the_content() che dividerà il contenuto in parti, aggiungerà il tuo annuncio e restituirà il nuovo contenuto.

Roman Roman
22 mag 2011 00:20:21

@Sledge81 Un nuovo problema non va inserito in un commento. Per favore, usa Fai una domanda per questo. Altrimenti nessun altro troverà la soluzione. Le domande puramente CSS appartengono a StackOverflow però...

fuxia fuxia
22 mag 2011 01:01:27

Aggiungi un div.spacing prima del div.advertisement e aggiungi .spacing{float:left;width:1px;height:200px}. Il div.advertisement avrà bisogno di clear:left dopo. Esito a modificare così tanto la tua risposta.

fuxia fuxia
22 mag 2011 01:05:46

Grazie toscho.. Il tuo codice ha funzionato. Lo terrò a mente la prossima volta.

swordfish81 swordfish81
22 mag 2011 10:00:42
0

Utilizzando l'esempio per aggiungere classi ai tag p e 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');
?>
10 giu 2021 14:04:07