我有这段代码来显示它们的第一篇文章的所有类别和缩略图。
<?php $recent = new WP_Query(); ?>
<?php $recent->query( 'cat=1&showposts=5' ); ?>
<?php $is_first_post = true; ?>
<?php while( $recent->have_posts() ) : $recent->the_post(); ?>
<ul>
<li>
<?php
if ( $is_first_post && has_post_thumbnail() ) {
the_post_thumbnail();
$is_first_post = false;
}
?>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
</ul>
<?php endwhile; ?>
但我想使用shortcode.this显示类别和职位编号, 但我不能使简码
#1
简码是PHP函数。你需要一个接受所有参数的函数。例如-
function get_posts($atts) {
extract( shortcode_atts( array(
'cat_id' => 'cat_id', 'num_posts' => 'num_posts'
), $atts ) );
$loop = array(
'cat' => $cat_id, 'posts_per_page' => $num_posts
);
if ( $loop->have_posts() ) :
while ( $loop->have_posts() ) : $loop->the_post();
// YOUR CODE HERE
endwhile;
endif;
}
add_shortcode( 'getposts', 'get_posts' );
你的简码看起来像这样-
getposts[cat_id="1", num_posts="5"]
该代码尚未经过测试, 但这几乎是你的操作方式
#2
首先, 你只需更改函数名称。
在wordpress中, get_posts()是一个函数, 因此你没有创建相同名称的自定义函数。
get_posts()
#3
将此代码添加到function.php中, 这是你的简码” [my_form_shortcode cat =” 1″ showposts =” 5″]”。
function my_form_shortcode($atts) {
ob_start();
$atts = shortcode_atts(
array(
'cat' => '1', 'showposts' => '5', ), $atts, 'my_form_shortcode' );
//YOUR CODE START
$recent = new WP_Query();
$query = "cat=".$atts['cat']."&showposts=".$atts['showposts'];
$recent->query( $query );
$is_first_post = true;
while( $recent->have_posts() ) : $recent->the_post(); ?>
<ul>
<li>
<?php
if ( $is_first_post && has_post_thumbnail() ) {
the_post_thumbnail();
$is_first_post = false;
}
?>
<a href="<?php the_permalink(); ?>">
<?php the_title(); ?>
</a>
</li>
</ul>
<?php endwhile;
//YOUR CODE END
return ob_get_clean();
}
add_shortcode( 'my_form_shortcode', 'my_form_shortcode' );
#4
function ShowProduct()
{
$data = "Welcome to wordpress shortcode.";
return $data;
}
add_shortcode('products', 'ShowProduct');
http://www.codexwp.com/issues/how-to-create-shortcode-in-wordpress/
评论前必须登录!
注册