Reputation: 859
I'm having some trouble getting my "WP Private" plugin to work through my TEMPLATE, not a post/page. When searching Google, I have no problems with finding out how to implement a SINGLE shortcode, but I'm not able to find how to implement an opening/closing short tag, which I know is quite common.
Here's my code. I must be having another syntax issue! The opening/closing tags that I used in this case have proven successful on another website I tried. But it's not working in this case.
<?php echo do_shortcode ('[protected]
<!--<h2><?php the_title(); ?></h2>-->
<ul style="border-bottom: 1px solid #d8d8d8" class="<?php echo get_option('minimax_list_layout'); ?>">
<?php
query_posts(array ('post__in' => array( 569)));
if (have_posts()) : while (have_posts()) : the_post();
?>
<li style="border-bottom: 1px solid #d8d8d8; padding-bottom:20px" class="clearfix">
<?php if ( get_option('minimax_list_layout') == 'style-two' ) { ?>
<h3 style="font-family:nobile; font-weight:normal; font-size:1.8em"><a style="text-decoration:none" title="<?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<cite><?php the_time('d M Y') ?> </cite>
<?php if ( has_post_thumbnail() ) { ?>
<a title="Permanent Link to <?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_post_thumbnail('thumb_post_wide', 'class=head'); ?></a>
<?php } ?>
<p style="font-family:nobile; font-size:1.15em"><?php echo ShortenText( $post->post_content, 300 ); ?></p>
<a class="detail" href="<?php the_permalink() ?>">Continue reading</a>
<?php } else { ?>
<?php if ( has_post_thumbnail() ) { ?>
<a title="Permanent Link to <?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_post_thumbnail('thumb_post_1'); ?></a>
<?php } ?>
<div class="post-summary">
<h3 style="font-family:nobile; font-weight:normal; font-size:1.8em"><a style="text-decoration:none" title="<?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<!--<cite style="font-style:normal; font-weight:bold; font-family:nobile"><?php the_time('d M Y') ?> </cite>-->
<p style="font-family:nobile; font-size:1.15em"><?php echo ShortenText( $post->post_content, 220 ); ?></p>
<a style="font-family:nobile" class="detail" href="<?php the_permalink() ?>">Continue reading</a>
</div><!-- end post-summary -->
<?php } ?>
</li>
<?php endwhile; ?>
<?php if (show_posts_nav()) : ?>
<div id="post-navigation" class="clearfix">
<span class="previous"><?php next_posts_link('Older Entries') ?></span>
<span class="next"><?php previous_posts_link('Newer Entries') ?></span>
</div>
<?php endif; wp_reset_query(); ?>
<?php else: ?>
<p><?php _e('Sorry, no pages matched your criteria.'); ?></p>
<?php endif; ?>
</ul><!-- end posts-list -->
[/protected]') ?>
Upvotes: 0
Views: 592
Reputation: 16214
You are writing very weird things here. By doing this:
echo do_shortcode ('[protected]
<!--<h2><?php the_title(); ?></h2>-->
you are submitting the php code of the template as a string to the function and then echo it, but it is not going to be interpreted by PHP engine. Moreover, the first single quote will create a syntax error. You have to enable ob (output buffering), run the template code, get the result from the buffer, wrap it in your shortcode and than submit the result to function do_shortcode.
http://www.php.net/ob_start and http://www.php.net/ob_get_clean
ps: and I still think that you do not need it. Why do you need a shortcode here, if you can use "if" statement and just skip the whole section of the code? I do not know what you are doing in your plugin, but if you are trying to hide the part of the template then "if" is the easiest way to implement your idea.
if (check_if_allowed())
{
// your part of template is here
}
Upvotes: 1