it-swarm-es.com

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

intento 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 mata 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 hago este condicional?

28
Jason

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 tu contenido personalizado, 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 añada un filtro al gancho the_title:

<?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 el contenido personalizado después 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 usted solo devuelve $content cuando se cumple su condición. Debe devolver $content, sin modificar, como else a su condicional. p.ej.:

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.

38
Chip Bennett
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 is_singular conditional verifica si se está mostrando una publicación singular y le permite especificar el parámetro $ post_types que en este caso es propiedad.

Además, es posible que desee ver do_shortcode

0
Brad Dalton