使用不同页面模板的自定义POST类型循环

时间:2021-07-16 作者:Mathieu Préaud

我的网站有两个不同的页面模板。每个页面模板都包含不同的自定义帖子类型。循环中的立柱可通过以下方式加载AJAX 加载更多。

这是我为这两个模板页面运行的常见代码。它包括循环,我使用is_page_template() 具有PHP 用于检测前端中要加载自定义帖子类型的模板的变量musicmovies.

问题是,我的PHP 是基本的,我不确定我的代码是否安全或有任何漏洞。

<?php
if( is_page_template( \'page-music.php\' ) ) :

    $current_post_type = \'music\';

elseif( is_page_template( \'page-movies.php\' ) ) :
    
    $current_post_type = \'movies\';

endif;
?>

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

                <div class="wrapper wrapper-archive flex-cols">
                    <?php
                    $paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
                    $args = array(
                        \'post_type\' => $current_post_type,
                        \'post_status\' => \'publish\',
                        \'posts_per_page\' => 4,
                        \'paged\' => $paged
                    );

                    $loop = new WP_Query( $args );
                    while ( $loop->have_posts() ) : $loop->the_post();

                        get_template_part( \'template-parts/content\', \'cpt-archive\' );

                    endwhile;

                    wp_reset_postdata();
                    ?>
                </div>

                <?php
                if ($loop->max_num_pages > 1) :
                    echo \'<button id="load-more-\'. $current_post_type .\'" class="load-more-archive">Load more</button>\';
                endif;
                ?>

                <script>
                    var current_post_type = \'<?php echo $current_post_type ?>\', 
                    posts_myajax = \'<?php echo serialize( $loop->query_vars ) ?>\',
                    current_page_myajax = 1,
                    max_page_myajax = <?php echo $loop->max_num_pages ?>
                </script>
                
    </article>
欢迎对代码提出任何意见。谢谢

1 个回复
SO网友:Morteza Mohammadi

我有一些建议也许可以帮助你和其他人

为了更好的安全性和某些原因,请创建一个插件,用于在首页打印结果,并使用快捷码或其他方式。不要使用ajax调用direct php文件,请使用admin\\u ajax。可以在中找到如何使用的phpwp documentif(! defined( \'ABSPATH\' )){die("You Can not Access Directly to This File")}wp-nonce 用于在wordpress中发送和接收任何数据

相关推荐

PHP函数中的字符串偏移量非法

我正在创建一个元盒来上载PDF文件。对于这一行代码,我有以下警告通知:$this_file = $filearray[\'url\'];警告:中的字符串偏移量“url”非法完整的功能代码:function wp_custom_attachment() { wp_nonce_field( plugin_basename(__FILE__), \'wp_custom_attachment_nonce\' ); $html = \'<p class="descri