Los ganchos / filtros de WordPress se insertan antes del contenido o después del título

27

intentando insertar contenido antes del contenido de la publicación en mis funciones.php: sé cómo usar los ganchos wp normales, pero no estoy seguro de cómo insertarlo en otras áreas.

Intenté esto, pero elimina el contenido en cualquier otro tipo de publicación:

function property_slideshow( $content ) {
 if ( is_single() && 'property' == get_post_type() ) {
    $custom_content = '[portfolio_slideshow]';
    $custom_content .= $content;
    return $custom_content;
    } 
}
add_filter( 'the_content', 'property_slideshow' );

¿Cómo puedo hacer esto condicional?

    
pregunta Jason 24.01.2012 - 04:49

2 respuestas

37

Simplemente use el filtro the_content , por ejemplo:

<?php
function theme_slug_filter_the_content( $content ) {
    $custom_content = 'YOUR CONTENT GOES HERE';
    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'theme_slug_filter_the_content' );
?>

Básicamente, agregas el contenido de la publicación después de tu contenido personalizado y luego devuelves el resultado.

Editar

Como Franky @bueltge señala en su comentario, el proceso es el mismo para el título de la publicación; simplemente agregue un filtro al the_title hook:

<?php
function theme_slug_filter_the_title( $title ) {
    $custom_title = 'YOUR CONTENT GOES HERE';
    $title .= $custom_title;
    return $title;
}
add_filter( 'the_title', 'theme_slug_filter_the_title' );
?>

Tenga en cuenta que, en este caso, agrega su contenido personalizado después de el Título. (No importa cuál; simplemente seguí con lo que especificó en su pregunta).

Editar 2

La razón por la que su código de ejemplo no funciona es porque solo devuelve $content cuando se cumple su condicional . Debe devolver $content , sin modificar, como else a su condicional. por ejemplo:

function property_slideshow( $content ) {
    if ( is_single() && 'property' == get_post_type() ) {
        $custom_content = '[portfolio_slideshow]';
        $custom_content .= $content;
        return $custom_content;
    } else {
        return $content;
    }
}
add_filter( 'the_content', 'property_slideshow' );

De esta manera, para las publicaciones que no sean del tipo post de 'propiedad', se devuelve $content , sin modificar.

    
respondido por el Chip Bennett 24.01.2012 - 04:59
0
function property_slideshow( $content ) {
    if ( is_singular( 'property' ) ) {
        $custom_content = do_shortcode( '[portfolio_slideshow]' );
        $custom_content .= $content;
        }
        return $custom_content;
}
add_filter( 'the_content', 'property_slideshow' );

La etiqueta condicional is_singular comprueba si se está mostrando una publicación singular y le permite especificar el parámetro $ post_types que en este caso es propiedad.

También es posible que desee ver do_shortcode

    
respondido por el Brad Dalton 02.11.2014 - 20:29

Lea otras preguntas en las etiquetas