【发布时间】:2016-08-16 05:16:18
【问题描述】:
我正在尝试在 WordPress 中创建自己的主题。我将 PSD 文件转换为 HTML,现在我想用 WordPress 使其动态化,我使用了 mix it up 插件,因为你知道它不是 WordPress 插件,所以我尝试自己让它动态化,我使用了提供的 this 教程此问题的代码和视频。 正如您在图片中看到的,它必须显示我的类别但显示“数组”,我找不到原因?
这是我的代码 首先,我使用名为 books_category 的分类法创建名为 book 的帖子类型
function p2p2_register_book(){
$labels = array(
'name' => _x( 'کتابخانه', 'books'),
'singular_name' => _x( 'کتاب', 'book' ),
'add_new' => _x( 'افزودن کتاب', '' ),
'add_new_item' => __( 'افزودن کتاب جدید' ),
'edit_item' => __( 'ویرایش کتاب' ),
'new_item' => __( 'کتاب جدید' ),
'all_items' => __( 'همه کتاب ها' ),
'search_items' => __( 'جست و جو کتاب' ),
'not_found' => _( 'کتاب یافت نشد' ),
'not_found_in_trash' => __( 'کتاب در زباله دان یافت نشد' ),
'parent_item_colon' => '',
'menu_name' => 'کتابخانه'
);
$args=array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'menu_position' => 2,
'rewrite' => array( 'slug' => 'book' ),
'capability_type' => 'page',
'has_archive' => true,
// 'hierarchical' => false,
'supports' => array( 'title', 'editor', 'thumbnail', 'comments' ,'custom-fields'),
// 'taxonomies' => array( 'Books_category' ),
);
register_post_type('Book',$args);
}
add_action('init', 'p2p2_register_book');
// ============================== Adding post toxonomy to library post ================
function wp_library_post_taxonomy() {
register_taxonomy(
'books_category', //The name of the taxonomy. Name should be in slug form (must not contain capital letters or spaces).
'book', //post type name
array(
'hierarchical' => true,
'label' => 'book Category', //Display name
'query_var' => true,
'show_admin_column' => true,
'rewrite' => array(
'slug' => 'books_category', // This controls the base slug that will display before each term
'with_front' => true // Don't display the category base before
)
)
);
}
add_action( 'init', 'wp_library_post_taxonomy');
include_once( 'mixitup-plug.php' );
add_theme_support('post_thumbnails');
add_image_size('Books_small_image',150,200,true);
然后正如教程所说,我添加了此代码以使其成为动态
<?php
function books_shortcode($atts){
extract( shortcode_atts( array(
'category' => ''
), $atts, '' ));
$q= new WP_Query(
array('posts_per_page'=> 30, 'post_type' => 'Book')
);
//library taxonomy query
global $paged;
global $post;
$args = array(
'post_type' => 'Book',
'paged' => $paged,
' posts_per_page' => -1,
);
$Books = new WP_Query($args);
if(is_array($Books->posts) && !empty($Books->posts)) {
foreach($Books->posts as $Books_post) {
$Books_taxs = wp_get_post_terms($Books_post->ID, 'Books_category', array("fields" => "all"));
if(is_array($Books_taxs) && !empty($Books_taxs)) {
foreach($Books_taxs as $Books_tax) {
$Books_taxs[$Books_tax->slug] = $Books_tax->name;
}
}
}
}
?>
<!--Category Filter-->
<div class="filter-book">
<ul>
<li class="filter active" data-filter="all">همه</li>
<?php foreach($Books_taxs as $Books_tax_slug => $Books_tax_name): ?>
<li class="filter" data-filter=".<?php echo $Books_tax_slug; ?>"><?php echo $Books_tax_name; ?></li>
<?php endforeach; ?>
</ul></div>
<!--End-->
<?php
$list = '<div class="library-item">';
while($q->have_posts()) : $q->the_post();
$idd = get_the_ID();
$small_image_url=wp_get_attachment_image_src(get_post_thumbnail_id($post->ID),'Books_small_image');
//Get Texanmy class
$item_classes = '';
$item_cats = get_the_terms($post->ID, 'Books_category');
if($item_cats):
foreach($item_cats as $item_cat) {
$item_classes .= $item_cat->slug . ' ';
}
endif;
$single_link =
$list .= '
<div class="mix single-library cycology '.$item_classes.'">
<div>
<img src="'.$small_image_url[0].'">
<p class="text-center">کتاب جیبی موفقیت یک</p>
</div>
</div>
<div class="mix '.$item_classes.'" >'.get_the_content().'</div>
';
endwhile;
$list.= '</div>';
wp_reset_query();
return $list;
}
add_shortcode('Books', 'Books_shortcode');
?>
这部分代码一定有问题,因为这部分显示类别
<div class="filter-book">
<ul>
<li class="filter active" data-filter="all">همه</li>
<?php foreach($Books_taxs as $Books_tax_slug => $Books_tax_name): ?>
<li class="filter" data-filter=".<?php echo $Books_tax_slug; ?>"><?php echo $Books_tax_name; ?></li>
<?php endforeach; ?>
</ul></div>
【问题讨论】:
-
您正在尝试使用 echo 语句打印数组。这就是打印 Array 的原因。
-
@RaviHirani 我从我的代码中删除了它,但结果相同。
-
@RaviHirani 我更新它。
标签: php jquery wordpress mixitup