在the_content过滤器中显示自定义帖子类型帖子和元数据

时间:2014-01-12 21:01:15

标签: php wordpress plugins thumbnails

我在mu-plugins.php文件//

中使用它
function new_default_content($content) {
global $post;
if ($post->post_type == 'textures') {
$content .='<li>
<figure>
   <?php the_post_thumbnail('thummy'); ?>
   <figcaption>
<h3><?php the_title(); ?></h3>
<span>Cool stuff brah.</span>

<?php 
 if ( has_post_thumbnail()) {
$large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" >View Full Image</a>'; }?>
                    </figcaption>
                </figure>
            </li>';
}
return $content;
}
add_filter('the_content', 'new_default_content');

在我的页面模板中,我使用<?php the_content(); ?>来显示所有内容。

UPDATE //
整页模板代码
          

<div id="container" class="clearfix">
<div id="left-content">
    <?php get_sidebar('two');?> 
</div>

<div id="right-content">
    <h1><?php wp_title(''); ?></h1>

    <ul class="grid cs-style-3">
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <?php the_content(); ?>
    <?php endwhile; ?>
    <?php endif; ?>
    </ul>
</div><!--right-content-->
</div><!--container-->

<?php get_footer(); ?>



但我收到了这个错误//
解析错误:语法错误,第15行/home/xxx/public_html/domain.com/testing/wp-content/mu-plugins/must-use.php中的意外T_STRING

我正在尝试这种显示内容的方法,因为我想使用 WP-Members 插件,我意识到该插件仅适用于the_content()内的内容。

所以我的问题是我如何修复上面发布的代码以正确的方式显示标题,缩略图,链接等?

2 个答案:

答案 0 :(得分:2)

function new_default_content($content) {
global $post;
if ($post->post_type == 'textures') {
$content .='<li>';
$content .='<figure>';
$content .= the_post_thumbnail('thummy');
$content .= '<figcaption>';
$content .= '<h3>';
$content .= the_title();
$content .= '</h3>';
$content .= '<span>Cool stuff brah.</span>';

 if ( has_post_thumbnail()) {
    $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
    echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" >View Full Image</a>'; 
 }
        $content .= '</figcaption>';
    $content .= '</figure>';
$content .= '</li>';
}
return $content;
}
add_filter('the_content', 'new_default_content');

试试这段代码吧。如果你仍然得到同样的错误,我们会检查。

答案 1 :(得分:0)

找到解决方案
我记得你可以在短代码中添加内容 所以我创建了自己的短代码[textures_content]

然后使用下面粘贴的代码显示<?php the_content(); ?>函数//

中的内容
add_shortcode( 'textures_content', 'textures_shortcode' );
function textures_shortcode( $atts ) {
    ob_start();
    $query = new WP_Query( array(
        'post_type' => 'textures',
        'posts_per_page' => -1,
        'order' => 'ASC',
        'orderby' => 'date',
    ) );
    if ( $query->have_posts() ) { ?>
            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                <li>
                    <figure>
                        <?php the_post_thumbnail('thummy'); ?>
                        <figcaption>
                            <h3><?php the_title(); ?></h3>
                            <?php if ( has_post_thumbnail()) {
                            $large_image_url = wp_get_attachment_image_src( get_post_thumbnail_id(), 'large');
                            echo '<a href="' . $large_image_url[0] . '" title="' . the_title_attribute('echo=0') . '" >View Full Image</a>'; }?>
                        </figcaption>
                    </figure>
                </li>
            <?php endwhile;
            wp_reset_postdata(); ?>
    <?php $myvariable = ob_get_clean();
    return $myvariable;
    }
} 

现在,仅限会员插件按预期工作,登录后显示被阻止的内容:)