AJAX фильтр для получения сообщений из категории в wordpress - PullRequest
0 голосов
/ 04 августа 2020

Я сейчас работаю над своим портфолио, используя wordpress (тема: miyazaki). На странице-указателе я хочу показать свои работы по категориям. Означает, что когда я нажимаю на категорию «Интернет», мне должны показываться все сообщения с категорией «Интернет». Чтобы справиться с этим, я использовал этот код: я использовал базовый код отсюда: http://juha.blog/dev/wordpress/ajax-filters-for-wordpress-categories/ Если я нажму на одну из категорий, он покажет не только сообщения категории, но и всю категорию страница. Кто-нибудь знает, как я могу просто получить сообщения?

Это мой сайт: jasminstammler.ch

INDEX. php


<main id="site-content">

<div class="section-inner">

<?php 

if ( is_archive() || is_search() ) : 

$has_description = get_the_archive_description();

$results_count = $wp_query->found_posts;
$results_strlen = strlen( $results_count );

?>

<header class="archive-header <?php if ( $has_description ) echo ' has-description'; ?>">

<div class="archive-header-titles">

<h3 class="archive-title-prefix"><?php echo miyazaki_get_archive_title_prefix(); ?></h3>

<h1 class="archive-title">
<?php the_archive_title(); ?>
<?php if ( $results_count ) : ?>
<div class="results-count length-<?php echo $results_strlen; ?>"><?php echo $results_count; ?></div>
<?php endif; ?>
</h1>

</div><!-- .header-titles -->

<?php if ( $has_description ) : ?>

<div class="archive-header-text">

<div class="archive-description intro-text">
<?php the_archive_description(); ?>
</div><!-- .archive-description -->

</div><!-- .header-text -->

<?php endif; ?>

</header><!-- .archive-header -->

<?php endif; ?>


<ul class="xiong-filters">
<?php 
$args= array(  
'show_option_all'   =>   'All', // Text for button All
'title_li'          => __('')
);
wp_list_categories( $args );
?>
</ul>

<?php if ( have_posts() ) : ?>

<div id="main-content">
<div id="inside">
<div class="container">
<div class="posts load-more-target" id="posts">

<div class="grid-sizer"></div>

<?php

while ( have_posts() ) : the_post();
get_template_part( 'preview', get_post_type() );
endwhile; ?>
</div>

</div>
</div>
</div><!-- .posts -->

<?php get_template_part( 'pagination' ); ?>

<?php elseif ( is_search() ) : ?>

<p class="no-search-results"><?php _e( "We couldn’t find any matching search results, but feel free to try again with different words.", "miyazaki" ); ?></p>

<?php endif; ?>

</div><!-- .section-inner -->


</main><!-- #site-content -->

<?php get_footer(); ?>

ФУНКЦИИ. PHP

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles', 11 );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_uri() );
}


 add_action( 'wp_enqueue_scripts', 'xiong_theme_scripts' );
 function xiong_theme_scripts() {

        //Ajax filter scripts     
        wp_register_script( 'ajax', get_template_directory_uri() . '/../child_miyazaki/js/ajax.js', array( 'jquery' ), '1.0.0', true  );
       wp_enqueue_script( 'ajax' );
       }


?>

AJAX. JS

//AJAX Filters

jQuery(function(){
    var mainContent = jQuery('#main-content'),
        cat_links = jQuery('ul.xiong-filters li a');

        cat_links.on('click', function(e){

            e.preventDefault();
            $el = $(this);
            var value = $el.attr("href");
            mainContent.animate({opacity:"0.5"});
            mainContent.load(value + "#inside", function(){
                mainContent.animate({opacity:"1"});
            });
            jQuery( "li" ).removeClass( "current-cat" );
             jQuery(this).closest('li').addClass("current-cat");
        });
});

Я немного нуб , если речь идет о PHP .. так что я очень ценю вашу помощь! Спасибо большое!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...