我已经在这个论坛上寻找了2天的帮助,但我无法找到解决方案来解决我想要达到的目标。
我有一个名为“product”的自定义帖子类型,并且在该帖子类型的每个帖子中有两个名为produktnamn(带产品名称的文本字段)和produktbild(产品图片)的自定义字段。就是这样。
现在我需要一个短代码,通过输入它的slug(与它的名字相同)来显示该帖子类型中的特定帖子。
像这样: [product name =“myproduct”]这将在一些HTML标记内呈现名称和产品图像。
请帮忙!
到目前为止我的代码:
//Product image
function cpt_content_func($atts){
extract( shortcode_atts(['name' => null], $atts ) );
$args = [
'name' => $slug,
'post_type' => 'product',
'numberposts' => 1
];
$posts = get_posts( $args );
$post = $post[0];
$title = $post->title;
$id = $post->ID;
get_post_meta('produktbild', $id);
$content = $post[0]->post_title;
return '<h3>'.$content.'</h3>';
}
add_shortcode('product','cpt_content_func');
解决了它。这是代码!
function display_custom_post_type( $atts ){
// Handle the attributes
$atts = shortcode_atts(
array(
'cat' => ' '
),
$atts, 'products_by_cat' );
// Set default values for the post
$args = array(
'posts_per_page' => -1,
'post_type' => 'product',
'post_status' => 'publish',
'category' => $atts['cat']
);
// Get posts
$posts_array = get_posts( $args );
// Check if posts exist
if( !empty($posts_array) ){
$string = '<div class="row">';
foreach( $posts_array as $post ){
$string .= '<div class="col-sm-3 text-center">';
$string .= '<div class="product-container">';
$string .= '<a href="' . get_field( "order_link", $post->ID ) . '">';
$string .= '<img class="product-img" src="' . get_field( "produktbild", $post->ID ) . '">';
$string .= '</a>';
$string .= '</div>';
$string .= '<p class="product-btn">' . get_field( "produktnamn", $post->ID ) . '</p>';
$string .= '</div>';
}
$string .= '</div>';
} else {
// Didn't find any posts.
}
// Return HTML
return $string;
答案 0 :(得分:-1)
我同意詹姆斯 - 我只是使用woocommerce。
但您必须首先学习如何构建短代码:http://code.tutsplus.com/tutorials/wordpress-shortcodes-the-right-way--wp-17165
一旦您尝试创建自己的短代码,如果事情仍然无效,那就是寻求帮助的时候了。