Tôi muốn truy xuất từng widget hiện có trong một thanh bên để lấy ví dụ như trộn chúng với các bài đăng bên trong vòng lặp chính.
Tôi biết tôi có thể sử dụng các khu vực widget khác nhau (sidebars) nhưng cách tiếp cận này làm tắc nghẽn trang quản trị widget với một số hàng chục sidebars. Để giảm thiểu điều này, tôi nghĩ chỉ cần thêm chúng vào một thanh bên và truy xuất chúng liên tiếp khi cần.
Nhưng tôi bị kẹt. Tôi không biết làm thế nào để lấy riêng một widget.
Cách tiếp cận dự kiến của tôi là sử dụng wp_get_sidebars_widgets và the_widget nhưng tôi không thể truy xuất tên lớp widget.
Đây là một đoạn mã đơn giản của mã của tôi. Trong trường hợp này, tôi đang cố gắng thêm một widget mỗi ba bài đăng, nhưng là sự đơn giản hóa logic (vì tôi không muốn chỉ cần thêm chúng thường xuyên) để cung cấp cho bạn ý tưởng. Tôi muốn trực quan hóa mọi widget bằng cách sử dụng the_widget
hoặc bất kỳ chức năng nào khác. Làm thế nào tôi có thể thực hiện điều này? Có thể không?
<?php
$i = 1;
$widgets = wp_get_sidebars_widgets(); // I KNOW THE USE OF THIS IS DISCOURAGED (PRIVATE) BUT CANNOT FIND ALTERNATIVES.
if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
if ($i%3 == 0){
echo "<h1>WIDGET #".($i/3)."</h1>";
the_widget($widgets['homepage-1'][$i/3]); // THIS DOES NOT WORKS SINCE I'M NOT GIVING THE CLASS NAME. HOW TO RETRIEVE IT?
}
get_template_part( 'content', get_post_format() );
$i++;
?>
<?php endwhile; ?>
<?php _s_paging_nav(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>