我有这个代码来显示他们的第一篇文章的所有类别和缩略图。
<?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.which使用category&amp;邮编 但我不能做短代码
答案 0 :(得分:0)
短代码是PHP函数。您需要一个接受所有参数的函数。例如 -
class djangoLetterTypes(models.Model):
id = models.AutoField(db_column='ID',primary_key=True)
letterBackgroundBase = models.CharField(db_column='LETTER_BACKGROUND_BASE',max_length=60,null=False,blank=False)
name = models.CharField(db_column='NAME',max_length=50,null=False,blank=False)
letterCode = models.IntegerField(db_column='LETTERCODE',max_length=50,null=False,blank=False,unique=True)
class Meta:
managed = True
db_table = 'djangoLetterTypes'
def __str__(self):
return self.name
class djangoLetters(models.Model):
id = models.AutoField(db_column='ID',primary_key=True)
letterType = models.ForeignKey(djangoLetterTypes,db_column='letterType',to_field='letterCode')
class Meta:
managed = True
db_table = 'djangoPDFLetters'
您的短代码将如下所示 -
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' );
此代码尚未经过测试,但这几乎就是您的工作方式
答案 1 :(得分:0)
首先,您只需更改您的功能名称。
在wordpress中,get_posts()是一个函数,因此您没有创建自定义函数的相同名称。
https://developer.wordpress.org/reference/functions/get_posts/
答案 2 :(得分:0)
在function.php中添加此代码 这是你的短代码&#34; [my_form_shortcode cat =&#34; 1&#34; showposts =&#34; 5&#34;]&#34;
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' );
答案 3 :(得分:0)
keys = set().union(*lst)
for d in lst:
for k in keys:
d.setdefault(k, '')
http://www.codexwp.com/issues/how-to-create-shortcode-in-wordpress/