Inserir anúncios em celulares e PC com código otimizado

  • Autor Autor iweb
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
I

iweb

Curioso
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Buenas tardes.
Tengo un pequeño problema que no consigo solucionar. Espero que algún experto en código pueda echarme una mano, y si no lo consigo puede que el código que aquí voy a poner le sirva a alguien.

Hasta ahora para insertar anuncios, independientemente del dispositivo, después del enesimo parrafo (en este caso después del tercero) utilizaba este código:

PHP:
//Insertar anuncio despues de 3 párrafo
add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {

    $ad_code = '<div class="has-text-centered">Anuncio 1
								</div>';
    if ( is_single() & ! is_admin() ) {
        return prefix_insert_after_paragraph( $ad_code, 3, $content );
    }

    return $content;
}

//Necesario para que funcione
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 );
}

Para que inserte el anuncio únicamente en dispositivos móviles modificaba la linea:
PHP:
if ( is_single() & ! is_admin() ) {

por

PHP:
if ( is_single() && wp_is_mobile() & ! is_admin() ) {

Ahora viene mi pregunta. ¿Cómo mejoro el código para que inserte el "Anuncio 2" cuando el visitante utiliza un sobremesa o portatil (no dispositivo móvil)?

Muchas gracias.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Buenas tardes.
Tengo un pequeño problema que no consigo solucionar. Espero que algún experto en código pueda echarme una mano, y si no lo consigo puede que el código que aquí voy a poner le sirva a alguien.

Hasta ahora para insertar anuncios, independientemente del dispositivo, después del enesimo parrafo (en este caso después del tercero) utilizaba este código:

PHP:
//Insertar anuncio despues de 3 párrafo
add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {

    $ad_code = '<div class="has-text-centered">Anuncio 1
                                </div>';
    if ( is_single() & ! is_admin() ) {
        return prefix_insert_after_paragraph( $ad_code, 3, $content );
    }

    return $content;
}

//Necesario para que funcione
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 );
}

Para que inserte el anuncio únicamente en dispositivos móviles modificaba la linea:
PHP:
if ( is_single() & ! is_admin() ) {

por

PHP:
if ( is_single() && wp_is_mobile() & ! is_admin() ) {

Ahora viene mi pregunta. ¿Cómo mejoro el código para que inserte el "Anuncio 2" cuando el visitante utiliza un sobremesa o portatil (no dispositivo móvil)?

Muchas gracias.
¡Hola! Entiendo que quieres hacer que se muestre un anuncio diferente según el tipo de dispositivo que esté usando el visitante. Puedo ayudarte a modificar tu código para que inserte "Anuncio 1" en dispositivos móviles y "Anuncio 2" en desktops (sobremesas y portátiles).

Aquí tienes una versión mejorada de tu código:

PHP:
// Insertar anuncio después de 3 párrafo
add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {
    // Anuncios para diferentes dispositivos
    $mobile_ad_code = '<div class="has-text-centered">Anuncio 1</div>';
    $desktop_ad_code = '<div class="has-text-centered">Anuncio 2</div>';
   
    if ( is_single() && ! is_admin() ) {
        // Determinar si el usuario está en un dispositivo móvil
        if ( wp_is_mobile() ) {
            return prefix_insert_after_paragraph( $mobile_ad_code, 3, $content );
        } else {
            return prefix_insert_after_paragraph( $desktop_ad_code, 3, $content );
        }
    }

    return $content;
}

// Necesario para que funcione
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 );
}

### Cambios realizados:
1. Se han añadido dos variables $mobile_ad_code y $desktop_ad_code para almacenar el contenido del anuncio para móviles y desktops, respectivamente.
2. Se ha modificado la estructura de control dentro de la función prefix_insert_post_ads para verificar el tipo de dispositivo y añadir el anuncio correspondiente.

Ahora, dependiendo de si el visitante está usando un dispositivo móvil o de escritorio, se insertará el anuncio adecuado después del tercer párrafo. Espero que esto solucione tu problema. ¡No dudes en preguntar si tienes más dudas!
 
Voltar
Topo