Changeset 3290862
- Timestamp:
- 05/10/2025 10:29:05 AM (11 months ago)
- Location:
- quick-ajax-post-loader/trunk
- Files:
-
- 9 edited
-
css/style.css (modified) (1 diff)
-
css/style.min.css (modified) (1 diff)
-
inc/actions.php (modified) (2 diffs)
-
inc/class-ajax.php (modified) (18 diffs)
-
inc/class-helper.php (modified) (1 diff)
-
inc/class-shortcode.php (modified) (4 diffs)
-
inc/functions.php (modified) (1 diff)
-
quick-ajax-post-loader.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
quick-ajax-post-loader/trunk/css/style.css
r3287563 r3290862 177 177 width:100%; 178 178 padding:1rem; 179 -webkit-box-sizing: border-box; 180 box-sizing: border-box; 179 181 } 180 182 .quick-ajax-posts-container.quick-ajax-theme .col-qty-2 .qapl-post-item{ -
quick-ajax-post-loader/trunk/css/style.min.css
r3287563 r3290862 1 .quick-ajax-filter-container.quick-ajax-theme{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:10px;margin-bottom:2rem;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.quick-ajax-filter-container.quick-ajax-theme button.qapl-button,.quick-ajax-sort-options-container.quick-ajax-theme select{padding:10px 20px;font-size:16px;line-height:1;border:2px solid #1e1e1e;background-color:#1e1e1e;color:#fff;-webkit-box-shadow:0 0 22px rgba(0,0,0,.2);box-shadow:0 0 22px rgba(0,0,0,.2);border-radius:21px;outline:unset;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-filter-container.quick-ajax-theme button.qapl-button:focus{outline:0;text-decoration:none;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.quick-ajax-filter-container.quick-ajax-theme button.qapl-button.active,.quick-ajax-filter-container.quick-ajax-theme button.qapl-button:hover{border:2px solid #1e1e1e;background-color:transparent;color:#1e1e1e;-webkit-box-shadow:0 0 14px rgba(0,0,0,.5);box-shadow:0 0 14px rgba(0,0,0,.5);-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-controls-container{display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px}.quick-ajax-controls-container .quick-ajax-filter-container{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.quick-ajax-controls-container .quick-ajax-sort-options-container{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.quick-ajax-controls-container .quick-ajax-filter-container.quick-ajax-theme{text-align:left;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:start}.quick-ajax-sort-options-container.quick-ajax-theme{margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative}.quick-ajax-sort-options-container.quick-ajax-theme select{background-color:#1e1e1e;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%23ffffff" d="M2 5L0 3h4z"/></svg>');background-repeat:no-repeat;background-position:calc(100% - 20px) 8px;background-size:10px;padding:5px 40px 5px 20px;min-height:40px;font-weight:500;text-align:center;outline:0;cursor:pointer;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper select:hover,.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper:hover select{background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%231e1e1e" d="M2 5L0 3h4z"/></svg>');background-repeat:no-repeat;background-position:calc(100% - 20px) 8px;background-size:10px;border:2px solid #1e1e1e;color:#1e1e1e;-webkit-box-shadow:0 0 14px rgba(0,0,0,.5);box-shadow:0 0 14px rgba(0,0,0,.5);-webkit-transition:background-color .3s ease;transition:background-color .3s ease}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper select:focus{background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%231e1e1e" d="M2 0L0 2h4z"/></svg>');background-repeat:no-repeat;background-position:calc(100% - 20px) 16px;background-size:10px;color:#1e1e1e;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper select option{background-color:#fff;color:#1e1e1e;font-weight:500;padding:10px;text-align:center}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-posts-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 2rem);margin-left:-1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-no-posts-found{display:block;width:100%;text-align:center}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-end-message-container{display:block;width:100%;text-align:center;opacity:0;-webkit-animation:qapl-fade-in .3s ease forwards;animation:qapl-fade-in .3s ease forwards;-webkit-animation-delay:.5s;animation-delay:.5s}.quick-ajax-posts-container.quick-ajax-theme .qapl-load-more-button{display:block;width:auto;margin:0 auto}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;padding:1rem }.quick-ajax-posts-container.quick-ajax-theme .col-qty-2 .qapl-post-item{width:calc(100% / 2)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-3 .qapl-post-item{width:calc(100% / 3)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-4 .qapl-post-item{width:calc(100% / 4)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-5 .qapl-post-item{width:calc(100% / 5)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-6 .qapl-post-item{width:calc(100% / 6)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-7 .qapl-post-item{width:calc(100% / 7)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-8 .qapl-post-item{width:calc(100% / 8)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-9 .qapl-post-item{width:calc(100% / 9)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-10 .qapl-post-item{width:calc(100% / 10)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-11 .qapl-post-item{width:calc(100% / 11)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-12 .qapl-post-item{width:calc(100% / 12)}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item a:focus{outline:0;text-decoration:none;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item a>div{position:relative;display:block;width:100%}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item a{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a{background-color:#fff;-webkit-box-shadow:0 0 10px rgba(0,0,0,.2);box-shadow:0 0 10px rgba(0,0,0,.2);text-decoration:none;border-radius:6px;text-decoration:none;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a:focus img{outline:0}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a:hover{-webkit-box-shadow:0 0 10px rgba(0,0,0,.5);box-shadow:0 0 10px rgba(0,0,0,.5);-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a>div{opacity:1;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a:hover>div{opacity:.8;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-image img{width:100%;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;border-top-right-radius:6px;border-top-left-radius:6px}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-date{position:absolute;top:1rem;left:1rem;z-index:1;background-color:rgba(255,255,255,.6);display:-webkit-box;display:-ms-flexbox;display:flex;width:auto;border-radius:6px}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-date span{line-height:1;padding:.5rem;font-size:14px;font-weight:700;color:#1e1e1e}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-title{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;padding:.5rem 1rem 1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-title,.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-title>*{color:#1e1e1e}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-no-image+.qapl-post-title{margin-top:3rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-description{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3;padding:0 1rem 1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-description,.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-description *{color:#1e1e1e}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-read-more{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4;text-align:right;padding:0 1rem 1rem;color:#1e1e1e;margin-top:auto}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-read-more p{margin-bottom:0}.quick-ajax-posts-container.quick-ajax-theme.loading{margin-bottom:0}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container{display:block;width:100%;opacity:1}.quick-ajax-posts-container.quick-ajax-theme.loading .quick-ajax-load-more-container{display:none;opacity:0}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container .qapl-load-more-wrapper{margin-top:1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-load-more-button{display:block;width:auto;margin:0 auto}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container .qapl-load-more-button{display:block;padding:10px 20px;font-size:18px;line-height:1;border:2px solid #1e1e1e;background-color:#1e1e1e;color:#fff;-webkit-box-shadow:0 0 22px rgba(0,0,0,.2);box-shadow:0 0 22px rgba(0,0,0,.2);border-radius:21px;outline:unset;-webkit-transition:all .3s;transition:all .3s}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container .qapl-load-more-button:hover{border:2px solid #1e1e1e;background-color:transparent;color:#1e1e1e;-webkit-box-shadow:0 0 14px rgba(0,0,0,.5);box-shadow:0 0 14px rgba(0,0,0,.5);-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container .quick-ajax-load-more-container.infinite-scroll{visibility:hidden}.quick-ajax-posts-container .quick-ajax-loader-container{visibility:hidden;opacity:0;height:0;-webkit-transition:opacity .1s ease;transition:opacity .1s ease}.quick-ajax-posts-container.loading .quick-ajax-loader-container{visibility:visible;opacity:1;height:auto;-webkit-transition:opacity .3s ease;transition:opacity .3s ease}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-loader-container{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 auto 0}.quick-ajax-posts-container.quick-ajax-theme.loading .quick-ajax-loader-container{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:42px;height:auto}.qapl-loader-default{border:8px solid #ebeaea;border-top:8px solid #fff;border-radius:50%;width:60px;height:60px;margin:1rem auto 1rem;-webkit-animation:loader-one-spin 2s linear infinite;animation:loader-one-spin 2s linear infinite}.qapl-loader-default.dark-loader{border:8px solid rgba(0,0,0,.3);border-top:8px solid rgba(0,0,0,.6)}@-webkit-keyframes loader-one-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader-one-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.qapl-loader-dot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:1rem auto 1rem}.qapl-loader-dot .dot{width:15px;height:15px;background:#fff;border-radius:50%;margin:5px;-webkit-animation:dotPulse 1.2s infinite ease-in-out both;animation:dotPulse 1.2s infinite ease-in-out both}.qapl-loader-dot.dark-loader .dot{background:rgba(0,0,0,.6)}.qapl-loader-dot .dot:nth-child(1){-webkit-animation-delay:-.24s;animation-delay:-.24s}.qapl-loader-dot .dot:nth-child(2){-webkit-animation-delay:-.12s;animation-delay:-.12s}.qapl-loader-dot .dot:nth-child(3){-webkit-animation-delay:0;animation-delay:0}@-webkit-keyframes dotPulse{0%,100%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.7}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes dotPulse{0%,100%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.7}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.qapl-loader-wave{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:1rem auto 1rem}.qapl-loader-wave .wave{width:5px;height:30px;background:rgba(255,255,255,.1);margin:0 2px;-webkit-animation:wave 1.2s infinite ease-in-out;animation:wave 1.2s infinite ease-in-out}.qapl-loader-wave.dark-loader .wave{background:rgba(0,0,0,.1);-webkit-animation:wave-dark 1.2s infinite ease-in-out;animation:wave-dark 1.2s infinite ease-in-out}.qapl-loader-wave .wave:nth-child(1){-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.qapl-loader-wave .wave:nth-child(2){-webkit-animation-delay:-1s;animation-delay:-1s}.qapl-loader-wave .wave:nth-child(3){-webkit-animation-delay:-.9s;animation-delay:-.9s}.qapl-loader-wave .wave:nth-child(4){-webkit-animation-delay:-.8s;animation-delay:-.8s}.qapl-loader-wave .wave:nth-child(5){-webkit-animation-delay:-.7s;animation-delay:-.7s}@-webkit-keyframes wave{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:#fff}}@keyframes wave{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:#fff}}@-webkit-keyframes wave-dark{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:rgba(0,0,0,.6)}}@keyframes wave-dark{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:rgba(0,0,0,.6)}}@-webkit-keyframes qapl-fade-in{from{opacity:0}to{opacity:1}}@keyframes qapl-fade-in{from{opacity:0}to{opacity:1}}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img{position:relative;overflow:hidden;color:#fff}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img a{text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-image{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:4px;-o-object-position:center;object-position:center;object-fit:cover;z-index:1}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-no-image{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);border-radius:4px;z-index:0}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .post-content{position:relative;z-index:2;background-color:rgba(0,0,0,.6);padding:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;overflow:hidden}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .post-content::before{content:'';position:absolute;top:0;left:-200%;width:200%;height:100%;background:linear-gradient(45deg,rgba(0,0,0,.9) 0,rgba(0,0,0,.1) 65%,rgba(0,0,0,0) 70%,rgba(0,0,0,0) 100%);opacity:0;z-index:-1;border-top-left-radius:4px;border-top-right-radius:4px;-webkit-transition:all .6s ease;transition:all .6s ease}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img a:hover>.post-content::before{left:0;opacity:1;-webkit-transition:all .6s ease;transition:all .6s ease}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-date{position:relative;background:0 0;line-height:1;margin-bottom:20px;font-size:14px;font-weight:600}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-date span{padding:0;margin-bottom:.5rem;color:#fff;text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-title{padding-top:3rem;margin-top:auto}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-title,.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-title *{color:#fff;text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-description,.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-description *{color:#fff;text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-read-more{text-align:right;font-weight:600;color:#fff;text-decoration:none;background:rgba(0,0,0,.4);display:inline-block;margin-top:1rem;margin-left:auto;margin-bottom:0;padding:6px 20px 8px;text-transform:uppercase;border-radius:7px;line-height:1;opacity:0;-webkit-transition:all .6s ease;transition:all .6s ease}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-read-more p{margin-bottom:0}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img a:hover .qapl-read-more{opacity:1;background:rgba(0,0,0,.6);-webkit-transition:all .6s ease;transition:all .6s ease}1 .quick-ajax-filter-container.quick-ajax-theme{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:10px;margin-bottom:2rem;text-align:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.quick-ajax-filter-container.quick-ajax-theme button.qapl-button,.quick-ajax-sort-options-container.quick-ajax-theme select{padding:10px 20px;font-size:16px;line-height:1;border:2px solid #1e1e1e;background-color:#1e1e1e;color:#fff;-webkit-box-shadow:0 0 22px rgba(0,0,0,.2);box-shadow:0 0 22px rgba(0,0,0,.2);border-radius:21px;outline:unset;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-filter-container.quick-ajax-theme button.qapl-button:focus{outline:0;text-decoration:none;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.quick-ajax-filter-container.quick-ajax-theme button.qapl-button.active,.quick-ajax-filter-container.quick-ajax-theme button.qapl-button:hover{border:2px solid #1e1e1e;background-color:transparent;color:#1e1e1e;-webkit-box-shadow:0 0 14px rgba(0,0,0,.5);box-shadow:0 0 14px rgba(0,0,0,.5);-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-controls-container{display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px}.quick-ajax-controls-container .quick-ajax-filter-container{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.quick-ajax-controls-container .quick-ajax-sort-options-container{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.quick-ajax-controls-container .quick-ajax-filter-container.quick-ajax-theme{text-align:left;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:start}.quick-ajax-sort-options-container.quick-ajax-theme{margin-left:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;position:relative}.quick-ajax-sort-options-container.quick-ajax-theme select{background-color:#1e1e1e;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%23ffffff" d="M2 5L0 3h4z"/></svg>');background-repeat:no-repeat;background-position:calc(100% - 20px) 8px;background-size:10px;padding:5px 40px 5px 20px;min-height:40px;font-weight:500;text-align:center;outline:0;cursor:pointer;position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper select:hover,.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper:hover select{background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%231e1e1e" d="M2 5L0 3h4z"/></svg>');background-repeat:no-repeat;background-position:calc(100% - 20px) 8px;background-size:10px;border:2px solid #1e1e1e;color:#1e1e1e;-webkit-box-shadow:0 0 14px rgba(0,0,0,.5);box-shadow:0 0 14px rgba(0,0,0,.5);-webkit-transition:background-color .3s ease;transition:background-color .3s ease}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper select:focus{background-color:transparent;background-image:url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 5"><path fill="%231e1e1e" d="M2 0L0 2h4z"/></svg>');background-repeat:no-repeat;background-position:calc(100% - 20px) 16px;background-size:10px;color:#1e1e1e;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-sort-options-container.quick-ajax-theme .quick-ajax-sort-option-wrapper select option{background-color:#fff;color:#1e1e1e;font-weight:500;padding:10px;text-align:center}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-posts-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:calc(100% + 2rem);margin-left:-1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-no-posts-found{display:block;width:100%;text-align:center}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-end-message-container{display:block;width:100%;text-align:center;opacity:0;-webkit-animation:qapl-fade-in .3s ease forwards;animation:qapl-fade-in .3s ease forwards;-webkit-animation-delay:.5s;animation-delay:.5s}.quick-ajax-posts-container.quick-ajax-theme .qapl-load-more-button{display:block;width:auto;margin:0 auto}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;padding:1rem;-webkit-box-sizing:border-box;box-sizing:border-box}.quick-ajax-posts-container.quick-ajax-theme .col-qty-2 .qapl-post-item{width:calc(100% / 2)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-3 .qapl-post-item{width:calc(100% / 3)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-4 .qapl-post-item{width:calc(100% / 4)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-5 .qapl-post-item{width:calc(100% / 5)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-6 .qapl-post-item{width:calc(100% / 6)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-7 .qapl-post-item{width:calc(100% / 7)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-8 .qapl-post-item{width:calc(100% / 8)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-9 .qapl-post-item{width:calc(100% / 9)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-10 .qapl-post-item{width:calc(100% / 10)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-11 .qapl-post-item{width:calc(100% / 11)}.quick-ajax-posts-container.quick-ajax-theme .col-qty-12 .qapl-post-item{width:calc(100% / 12)}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item a:focus{outline:0;text-decoration:none;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item a>div{position:relative;display:block;width:100%}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item a{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a{background-color:#fff;-webkit-box-shadow:0 0 10px rgba(0,0,0,.2);box-shadow:0 0 10px rgba(0,0,0,.2);text-decoration:none;border-radius:6px;text-decoration:none;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a:focus img{outline:0}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a:hover{-webkit-box-shadow:0 0 10px rgba(0,0,0,.5);box-shadow:0 0 10px rgba(0,0,0,.5);-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a>div{opacity:1;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default a:hover>div{opacity:.8;-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-image img{width:100%;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;border-top-right-radius:6px;border-top-left-radius:6px}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-date{position:absolute;top:1rem;left:1rem;z-index:1;background-color:rgba(255,255,255,.6);display:-webkit-box;display:-ms-flexbox;display:flex;width:auto;border-radius:6px}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-date span{line-height:1;padding:.5rem;font-size:14px;font-weight:700;color:#1e1e1e}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-title{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;padding:.5rem 1rem 1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-title,.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-title>*{color:#1e1e1e}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-no-image+.qapl-post-title{margin-top:3rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-description{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3;padding:0 1rem 1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-description,.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-post-description *{color:#1e1e1e}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-read-more{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4;text-align:right;padding:0 1rem 1rem;color:#1e1e1e;margin-top:auto}.quick-ajax-posts-container.quick-ajax-theme .qapl-post-item.qapl-post-item-default .qapl-read-more p{margin-bottom:0}.quick-ajax-posts-container.quick-ajax-theme.loading{margin-bottom:0}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container{display:block;width:100%;opacity:1}.quick-ajax-posts-container.quick-ajax-theme.loading .quick-ajax-load-more-container{display:none;opacity:0}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container .qapl-load-more-wrapper{margin-top:1rem}.quick-ajax-posts-container.quick-ajax-theme .qapl-load-more-button{display:block;width:auto;margin:0 auto}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container .qapl-load-more-button{display:block;padding:10px 20px;font-size:18px;line-height:1;border:2px solid #1e1e1e;background-color:#1e1e1e;color:#fff;-webkit-box-shadow:0 0 22px rgba(0,0,0,.2);box-shadow:0 0 22px rgba(0,0,0,.2);border-radius:21px;outline:unset;-webkit-transition:all .3s;transition:all .3s}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-load-more-container .qapl-load-more-button:hover{border:2px solid #1e1e1e;background-color:transparent;color:#1e1e1e;-webkit-box-shadow:0 0 14px rgba(0,0,0,.5);box-shadow:0 0 14px rgba(0,0,0,.5);-webkit-transition:all .3s ease;transition:all .3s ease}.quick-ajax-posts-container .quick-ajax-load-more-container.infinite-scroll{visibility:hidden}.quick-ajax-posts-container .quick-ajax-loader-container{visibility:hidden;opacity:0;height:0;-webkit-transition:opacity .1s ease;transition:opacity .1s ease}.quick-ajax-posts-container.loading .quick-ajax-loader-container{visibility:visible;opacity:1;height:auto;-webkit-transition:opacity .3s ease;transition:opacity .3s ease}.quick-ajax-posts-container.quick-ajax-theme .quick-ajax-loader-container{display:-webkit-box;display:-ms-flexbox;display:flex;margin:0 auto 0}.quick-ajax-posts-container.quick-ajax-theme.loading .quick-ajax-loader-container{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:42px;height:auto}.qapl-loader-default{border:8px solid #ebeaea;border-top:8px solid #fff;border-radius:50%;width:60px;height:60px;margin:1rem auto 1rem;-webkit-animation:loader-one-spin 2s linear infinite;animation:loader-one-spin 2s linear infinite}.qapl-loader-default.dark-loader{border:8px solid rgba(0,0,0,.3);border-top:8px solid rgba(0,0,0,.6)}@-webkit-keyframes loader-one-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader-one-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.qapl-loader-dot{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:1rem auto 1rem}.qapl-loader-dot .dot{width:15px;height:15px;background:#fff;border-radius:50%;margin:5px;-webkit-animation:dotPulse 1.2s infinite ease-in-out both;animation:dotPulse 1.2s infinite ease-in-out both}.qapl-loader-dot.dark-loader .dot{background:rgba(0,0,0,.6)}.qapl-loader-dot .dot:nth-child(1){-webkit-animation-delay:-.24s;animation-delay:-.24s}.qapl-loader-dot .dot:nth-child(2){-webkit-animation-delay:-.12s;animation-delay:-.12s}.qapl-loader-dot .dot:nth-child(3){-webkit-animation-delay:0;animation-delay:0}@-webkit-keyframes dotPulse{0%,100%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.7}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes dotPulse{0%,100%{-webkit-transform:scale(.8);transform:scale(.8);opacity:.7}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.qapl-loader-wave{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:1rem auto 1rem}.qapl-loader-wave .wave{width:5px;height:30px;background:rgba(255,255,255,.1);margin:0 2px;-webkit-animation:wave 1.2s infinite ease-in-out;animation:wave 1.2s infinite ease-in-out}.qapl-loader-wave.dark-loader .wave{background:rgba(0,0,0,.1);-webkit-animation:wave-dark 1.2s infinite ease-in-out;animation:wave-dark 1.2s infinite ease-in-out}.qapl-loader-wave .wave:nth-child(1){-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.qapl-loader-wave .wave:nth-child(2){-webkit-animation-delay:-1s;animation-delay:-1s}.qapl-loader-wave .wave:nth-child(3){-webkit-animation-delay:-.9s;animation-delay:-.9s}.qapl-loader-wave .wave:nth-child(4){-webkit-animation-delay:-.8s;animation-delay:-.8s}.qapl-loader-wave .wave:nth-child(5){-webkit-animation-delay:-.7s;animation-delay:-.7s}@-webkit-keyframes wave{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:#fff}}@keyframes wave{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:#fff}}@-webkit-keyframes wave-dark{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:rgba(0,0,0,.6)}}@keyframes wave-dark{0%,100%,40%{-webkit-transform:scaleY(.4);transform:scaleY(.4)}20%{-webkit-transform:scaleY(1);transform:scaleY(1);background:rgba(0,0,0,.6)}}@-webkit-keyframes qapl-fade-in{from{opacity:0}to{opacity:1}}@keyframes qapl-fade-in{from{opacity:0}to{opacity:1}}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img{position:relative;overflow:hidden;color:#fff}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img a{text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-image{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:4px;-o-object-position:center;object-position:center;object-fit:cover;z-index:1}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-no-image{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);border-radius:4px;z-index:0}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .post-content{position:relative;z-index:2;background-color:rgba(0,0,0,.6);padding:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;overflow:hidden}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .post-content::before{content:'';position:absolute;top:0;left:-200%;width:200%;height:100%;background:linear-gradient(45deg,rgba(0,0,0,.9) 0,rgba(0,0,0,.1) 65%,rgba(0,0,0,0) 70%,rgba(0,0,0,0) 100%);opacity:0;z-index:-1;border-top-left-radius:4px;border-top-right-radius:4px;-webkit-transition:all .6s ease;transition:all .6s ease}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img a:hover>.post-content::before{left:0;opacity:1;-webkit-transition:all .6s ease;transition:all .6s ease}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-date{position:relative;background:0 0;line-height:1;margin-bottom:20px;font-size:14px;font-weight:600}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-date span{padding:0;margin-bottom:.5rem;color:#fff;text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-title{padding-top:3rem;margin-top:auto}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-title,.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-title *{color:#fff;text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-description,.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-post-description *{color:#fff;text-decoration:none}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-read-more{text-align:right;font-weight:600;color:#fff;text-decoration:none;background:rgba(0,0,0,.4);display:inline-block;margin-top:1rem;margin-left:auto;margin-bottom:0;padding:6px 20px 8px;text-transform:uppercase;border-radius:7px;line-height:1;opacity:0;-webkit-transition:all .6s ease;transition:all .6s ease}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img .qapl-read-more p{margin-bottom:0}.quick-ajax-posts-container .qapl-post-item.qapl-post-item-bg-img a:hover .qapl-read-more{opacity:1;background:rgba(0,0,0,.6);-webkit-transition:all .6s ease;transition:all .6s ease} -
quick-ajax-post-loader/trunk/inc/actions.php
r3287563 r3290862 162 162 'hide_empty' => false, 163 163 ]); 164 / *164 //get checked terms if saved in post_meta 165 165 $post_id = isset($_POST['post_id']) ? intval($_POST['post_id']) : 0; 166 $saved_terms = []; 166 $saved_terms = []; 167 167 if ($post_id > 0) { 168 // get saved terms from post meta 168 169 $post_meta = get_post_meta($post_id, QAPL_Quick_Ajax_Helper::quick_ajax_shortcode_settings(), true); 169 170 $post_meta_values = maybe_unserialize($post_meta); 171 // if terms exist in post meta 170 172 if (is_array($post_meta_values) && isset($post_meta_values['qapl_manual_selected_terms'])) { 171 173 $saved_terms = array_map('intval', (array) $post_meta_values['qapl_manual_selected_terms']); 172 174 } 173 175 } 174 //$checked = in_array($term->term_id, $saved_terms) ? 'checked' : '';175 176 */177 176 ob_start(); 178 177 if (!empty($terms) && !is_wp_error($terms)) { … … 181 180 <div class="quick-ajax-multiselect-option"> 182 181 <label> 183 <input type="checkbox" name="qapl_manual_selected_terms[]" value="<?php echo esc_attr($term->term_id); ?>"> 182 <?php 183 //check if term is selected in post meta 184 $checked = in_array($term->term_id, $saved_terms) ? 'checked' : ''; 185 ?> 186 <input type="checkbox" name="qapl_manual_selected_terms[]" value="<?php echo esc_attr($term->term_id); ?>" <?php echo $checked; ?>> 184 187 <?php echo esc_html($term->name); ?> 185 188 </label> -
quick-ajax-post-loader/trunk/inc/class-ajax.php
r3287563 r3290862 9 9 private $helper; 10 10 private $input_args = []; 11 private $ selected_terms = [];11 private $action_args = []; 12 12 public $args = []; 13 public $load_more_args = [];14 13 public $attributes = []; 15 14 public $layout = []; … … 60 59 return $this->quick_ajax_id; 61 60 } 62 63 private function create_post_not_in($excluded_post_ids){ 64 $post__not_in = []; 65 $array_ids = is_array($excluded_post_ids) ? $excluded_post_ids : preg_split('/[,\s]+/', $excluded_post_ids); 66 67 foreach ($array_ids as $post_id) { 68 $int_post_id = intval($post_id); 69 //Check if the value is greater than 0 and not already in the array 70 if ($int_post_id > 0 && !in_array($int_post_id, $post__not_in, true)) { 71 $post__not_in[] = $int_post_id; 72 } 73 } 74 return $post__not_in; 75 } 61 76 62 /* 77 63 public function filter_modify_query_args($args, $quick_ajax_id) { … … 115 101 } 116 102 */ 103 private function sanitize_to_int_array($value) { 104 // if it's a string (e.g. "1,2,3"), split it by comma or whitespace 105 if (!is_array($value)) { 106 $value = preg_split('/[,\s]+/', $value); 107 } 108 // normalize and sanitize all values 109 $value = array_map('absint', $value); 110 // remove empty values (0s, nulls, etc.) 111 $value = array_filter($value, function($id) { 112 return $id > 0; 113 }); 114 // remove duplicates 115 $int_array = array_values(array_unique($value)); 116 return $int_array; 117 } 118 private function normalize_args($args) { 119 // convert comma-separated string to array of integers 120 if (isset($args['post__not_in'])) { 121 $args['post__not_in'] = $this->sanitize_to_int_array($args['post__not_in']); 122 } 123 if (isset($args['selected_terms'])) { 124 $args['selected_terms'] = $this->sanitize_to_int_array($args['selected_terms']); 125 } 126 return $args; 127 } 117 128 public function wp_query_args($args, $attributes = false){ 118 129 $this->args = []; 119 130 $this->generate_block_id($attributes); 120 $this->input_args = $args; 121 $quick_ajax_args = $this->initialize_query_args($args); 131 132 //normalize input args (sanitize selected_terms, post__not_in, etc.) 133 $this->input_args = $this->normalize_args($args); 134 $this->action_args = $this->input_args; 135 136 // generate query args (post_type, tax_query, etc.) 137 $quick_ajax_args = $this->initialize_query_args($this->input_args); 138 122 139 $this->args['post_status'] = $this->helper->shortcode_page_select_post_status_default_value(); 140 123 141 if (isset($quick_ajax_args['post_type']) && !empty($quick_ajax_args['post_type'])) { 124 142 foreach ($quick_ajax_args as $key => $value) { … … 128 146 } 129 147 } 148 /* not in use yet 130 149 if(isset($args['tax_query']) && !empty($args['tax_query'])){ 131 150 $this->args['tax_query'] = $args['tax_query']; 132 151 } 152 */ 133 153 134 154 $this->args = apply_filters(QAPL_Hooks::HOOK_MODIFY_POSTS_QUERY_ARGS, $this->args, $this->quick_ajax_id); … … 145 165 $query_args = $this->query_args_add_tax_query($query_args, $args); 146 166 $query_args = $this->query_args_apply_offset_or_paged($query_args, $args); 147 $this->get_selected_terms($args);148 167 return $query_args; 149 168 } … … 154 173 'orderby' => isset($args['orderby']) ? sanitize_text_field($args['orderby']) : $this->helper->shortcode_page_select_orderby_default_value(), 155 174 'order' => isset($args['order']) ? sanitize_text_field($args['order']) : $this->helper->shortcode_page_select_order_default_value(), 156 'post__not_in' => isset($args['post__not_in']) ? array_map('absint', $this->create_post_not_in($args['post__not_in'])) : '',175 'post__not_in' => $args['post__not_in'] ?? [], 157 176 'ignore_sticky_posts' => isset($args['ignore_sticky_posts']) ? intval($args['ignore_sticky_posts']) : $this->helper->shortcode_page_ignore_sticky_posts_default_value(), 158 177 'paged' => isset($args['paged']) ? intval($args['paged']) : 1, … … 170 189 private function query_args_add_tax_query($query_args, $args) { 171 190 $taxonomy = isset($args['selected_taxonomy']) ? sanitize_text_field($args['selected_taxonomy']) : ''; 172 $terms = isset($args['selected_terms']) && is_array($args['selected_terms']) ? array_map('absint', $args['selected_terms']): [];191 $terms = isset($args['selected_terms']) ? $args['selected_terms'] : []; 173 192 174 193 if ($taxonomy && !empty($terms)) { … … 186 205 } 187 206 return $query_args; 188 }189 private function get_selected_terms($args) {190 $taxonomy = isset($args['selected_taxonomy']) ? sanitize_text_field($args['selected_taxonomy']) : '';191 $terms = isset($args['selected_terms']) && is_array($args['selected_terms']) ? array_map('absint', $args['selected_terms']) : [];192 if ($taxonomy && !empty($terms)) {193 $this->selected_terms = $terms;194 }195 207 } 196 208 … … 243 255 return false; 244 256 } 245 public function render_taxonomy_terms_filter($taxonomy ){257 public function render_taxonomy_terms_filter($taxonomy = false){ 246 258 if(!$this->args){ 247 259 return false; 260 } 261 if(!$taxonomy){ 262 $taxonomy = $this->input_args['selected_taxonomy']; 248 263 } 249 264 … … 254 269 ); 255 270 // only include specific terms if selected_terms is not empty 256 if (!empty($this-> selected_terms) && is_array($this->selected_terms)) {257 $terms_args['include'] = $this-> selected_terms;271 if (!empty($this->input_args['selected_terms']) && is_array($this->input_args['selected_terms'])) { 272 $terms_args['include'] = $this->input_args['selected_terms']; 258 273 } 259 274 $terms = get_terms($terms_args); … … 290 305 'button_label' => $show_all_label, 291 306 'data-button' => $button_base['data-button'], 292 'data-action' => $this-> input_args,307 'data-action' => $this->action_args, 293 308 'data-attributes' => $button_base['data-attributes'], 294 309 ]; … … 298 313 $not_empty = $this->get_post_assigned_to_the_term($term, $this->args['post_type'], $exclude_ids); 299 314 if($not_empty == true){ 300 $data_action = $this-> input_args;315 $data_action = $this->action_args; 301 316 $data_action['selected_terms'] = [$term->term_id]; 302 317 $term_button_data = [ … … 395 410 } 396 411 $sort_option .= '</select>'; 397 $sort_option .= '<span class="quick-ajax-settings" data-button="'.$this->helper->sort_option_button_data_button().'" data-attributes="' . esc_attr(wp_json_encode($this->attributes)) . '" data-action="' . esc_attr(wp_json_encode($this-> input_args)) . '"></span>';412 $sort_option .= '<span class="quick-ajax-settings" data-button="'.$this->helper->sort_option_button_data_button().'" data-attributes="' . esc_attr(wp_json_encode($this->attributes)) . '" data-action="' . esc_attr(wp_json_encode($this->action_args)) . '"></span>'; 398 413 $sort_option .= '</div>'; 399 414 return $sort_option; … … 647 662 //echo 'paged:'.$paged.'<br />$max_num_pages:'.$max_num_pages.'<br />$found_posts:'.$found_posts.'<br />'; 648 663 //print_r($this->args); 649 664 $load_more_args = $this->action_args; 665 $load_more_args['paged'] = isset($this->args['paged']) ? intval($this->args['paged']) : 1; 650 666 if (isset($this->attributes[$this->helper->layout_load_more_posts()]) && !empty($this->attributes[$this->helper->layout_load_more_posts()])) { 651 667 // Check if load_more_posts attribute is set … … 653 669 // use 'offset' not 'paged' 654 670 $load_more_posts = intval($this->attributes[$this->helper->layout_load_more_posts()]); 655 $offset = isset($ this->args['offset']) ? $this->args['offset'] + $load_more_posts : + $load_more_posts;671 $offset = isset($load_more_args['offset']) ? $load_more_args['offset'] + $load_more_posts : + $load_more_posts; 656 672 657 if (($found_posts <= $offset) || ($found_posts <= intval($ this->args['posts_per_page']))) {673 if (($found_posts <= $offset) || ($found_posts <= intval($load_more_args['posts_per_page']))) { 658 674 return false; 659 675 } 660 676 // Update offset 661 $ this->args['offset'] = isset($this->args['offset']) ? intval($this->args['offset']) + $load_more_posts : intval($this->args['posts_per_page']);662 $ this->args['posts_per_page'] = $load_more_posts;677 $load_more_args['offset'] = isset($load_more_args['offset']) ? intval($load_more_args['offset']) + $load_more_posts : intval($load_more_args['posts_per_page']); 678 $load_more_args['posts_per_page'] = $load_more_posts; 663 679 } else { 664 680 // Check if there are no more pages to load … … 666 682 return false; 667 683 } 668 $ this->args['paged'] += 1;684 $load_more_args['paged'] += 1; 669 685 } 670 686 $class = ''; … … 676 692 $button_data['button_label'] = __('Load More', 'quick-ajax-post-loader'); 677 693 $button_data['data-button'] = $this->helper->load_more_button_data_button(); 678 $button_data['data-action'] = $ this->args;694 $button_data['data-action'] = $load_more_args; 679 695 $button_data['data-attributes'] = $this->attributes; 680 696 $load_more_button = '<div class="quick-ajax-load-more-container'.$class.'">'; … … 684 700 //do_action(QAPL_Hooks::HOOK_LOAD_MORE_AFTER); 685 701 } 686 public function render_end_of_posts_message($ show_end_post_message = false, $load_more, $max_num_pages, $quick_ajax_id) {702 public function render_end_of_posts_message($load_more, $max_num_pages, $quick_ajax_id, $show_end_post_message = false) { 687 703 if(!$show_end_post_message){ 688 704 return ''; -
quick-ajax-post-loader/trunk/inc/class-helper.php
r3287563 r3290862 15 15 public static function get_plugin_info() { 16 16 return [ 17 'version' => '1.7. 0',17 'version' => '1.7.1', 18 18 'name' => 'Quick Ajax Post Loader', 19 19 'text_domain' => 'quick-ajax-post-loader', -
quick-ajax-post-loader/trunk/inc/class-shortcode.php
r3287563 r3290862 256 256 private $shortcode_params = array(); 257 257 private $shortcode_postmeta = array(); 258 private $query_args = array(); 258 259 259 260 private function get_shortcode_params($params) { … … 321 322 } 322 323 if(!empty($args)){ 323 return$args;324 $this->query_args = $args; 324 325 } 325 326 return false; 326 327 } 328 /* 329 // replaced by args['selected_taxonomy'] - may be needed in the future if there is an option to hide the filter 327 330 private function create_shortcode_taxonomy(){ 328 331 if (empty($this->shortcode_params['id'])) { 329 332 return null; 330 333 } 331 //$postID = $this->shortcode_params['id'];332 //$selectedTaxonomy = get_post_meta($postID, 'quick_ajax_meta_box_select_taxonomy', true);333 334 $show_taxonomies_filter = isset($this->shortcode_postmeta[QAPL_Quick_Ajax_Helper::shortcode_page_show_taxonomy_filter()]) ? $this->shortcode_postmeta[QAPL_Quick_Ajax_Helper::shortcode_page_show_taxonomy_filter()] : null; 334 335 if($show_taxonomies_filter==1){ … … 340 341 } 341 342 return null; 342 } 343 }*/ 343 344 private function create_shortcode_controls_container(){ 344 345 if(!empty($this->shortcode_params['id'])){ … … 372 373 $this->unserialize_shortcode_data($this->shortcode_params['id']); 373 374 } 374 $ query_args = $this->create_shortcode_args();375 $this->create_shortcode_args(); 375 376 $attribute_provider = new QAPL_Shortcode_Ajax_Attributes_Provider($this->shortcode_params, $this->shortcode_postmeta); 376 377 $attributes = $attribute_provider->get_attributes(); 377 $render_context['taxonomy'] = $this->create_shortcode_taxonomy(); 378 //$render_context['show_taxonomy_filter'] = $this->create_shortcode_taxonomy(); 379 $render_context['show_taxonomy_filter'] = !empty($this->query_args['selected_taxonomy']); 378 380 $render_context['sort_options'] = $this->create_shortcode_sort_button(); 379 381 $render_context['controls_container'] = $this->create_shortcode_controls_container(); 380 382 ob_start(); 381 if (!empty($ query_args) && function_exists('qapl_render_post_container')) {382 qapl_render_post_container($ query_args, $attributes, $render_context);383 if (!empty($this->query_args) && function_exists('qapl_render_post_container')) { 384 qapl_render_post_container($this->query_args, $attributes, $render_context); 383 385 } 384 386 $output = ob_get_clean(); -
quick-ajax-post-loader/trunk/inc/functions.php
r3287563 r3290862 26 26 $output .= $ajax_class->render_sort_options($render_context['sort_options']); 27 27 } 28 if (isset($render_context[' taxonomy']) && !empty($render_context['taxonomy']) && is_string($render_context['taxonomy'])) {29 $output .= $ajax_class->render_taxonomy_terms_filter($ render_context['taxonomy']);28 if (isset($render_context['show_taxonomy_filter']) && $render_context['show_taxonomy_filter'] && !empty($args['selected_taxonomy'])) { 29 $output .= $ajax_class->render_taxonomy_terms_filter($args['selected_taxonomy']); 30 30 } 31 31 $output .= $filter_wrapper_end; -
quick-ajax-post-loader/trunk/quick-ajax-post-loader.php
r3287563 r3290862 5 5 * Text Domain: quick-ajax-post-loader 6 6 * Domain Path: /languages 7 * Version: 1.7. 07 * Version: 1.7.1 8 8 * Description: Supercharge post loading with Quick Ajax Post Loader. Enhance user experience and optimize site performance using AJAX technology. 9 9 * Author: Pawel Grzelkowski -
quick-ajax-post-loader/trunk/readme.txt
r3287563 r3290862 5 5 Requires at least: 5.6 6 6 Tested up to: 6.8 7 Stable tag: 1.7. 07 Stable tag: 1.7.1 8 8 Requires PHP: 7.4 9 9 License: GPLv2 or later … … 106 106 == Changelog == 107 107 108 = 1.7.1 - 2025-05-10 = 109 - Enhanced taxonomy filter in shortcode settings – saved terms are now automatically pre-selected when editing. 110 - The "Load More" button now passes only essential parameters, ensuring cleaner functionality. 111 - Improved compatibility with the latest PHP versions, ensuring smooth operation without deprecated warnings. 112 - Applied minor code optimizations for better performance. 113 108 114 = 1.7.0 - 2025-05-05 = 109 115 - Added support for manually selecting specific taxonomy terms in the shortcode or PHP function settings.
Note: See TracChangeset
for help on using the changeset viewer.