Changeset 354930
- Timestamp:
- 10/22/2026 04:31:01 AM (4 hours ago)
- Location:
- letterra/1.0.3
- Files:
-
- 10 deleted
- 30 edited
- 1 copied
-
. (copied) (copied from letterra/1.0.2 )
-
assets/css/style.css (modified) (24 diffs)
-
assets/css/style.min.css (modified) (59 diffs)
-
assets/css/swiper (deleted)
-
assets/js/single.js (deleted)
-
assets/js/single.min.js (deleted)
-
assets/js/swiper (deleted)
-
assets/licenses/swiper (deleted)
-
category.php (modified) (2 diffs)
-
footer.php (modified) (1 diff)
-
functions.php (modified) (11 diffs)
-
header.php (modified) (2 diffs)
-
home.php (modified) (3 diffs)
-
inc/customizer/customizer-letterra-core-settings.php (modified) (1 diff)
-
inc/footer-social-icons.php (modified) (1 diff)
-
inc/post-views.php (deleted)
-
inc/sidebar-about.php (modified) (5 diffs)
-
inc/sidebar-all-categories.php (modified) (5 diffs)
-
inc/sidebar-all-tags.php (modified) (3 diffs)
-
inc/sidebar-popular-posts.php (deleted)
-
letterra (deleted)
-
package.json (modified) (2 diffs)
-
readme.txt (modified) (10 diffs)
-
screenshot.png (modified) ( previous)
-
search.php (modified) (2 diffs)
-
searchform.php (modified) (1 diff)
-
sidebar.php (deleted)
-
single.php (modified) (1 diff)
-
style.css (modified) (2 diffs)
-
tag.php (modified) (2 diffs)
-
template-parts/content-author-archive.php (modified) (2 diffs)
-
template-parts/content-author-info.php (modified) (2 diffs)
-
template-parts/content-get-post-media.php (modified) (1 diff)
-
template-parts/content-post-author-meta.php (modified) (1 diff)
-
template-parts/content-post-image.php (modified) (2 diffs)
-
template-parts/content-post.php (modified) (1 diff)
-
template-parts/content-related-post.php (modified) (2 diffs)
-
template-parts/content-wrapper-end.php (modified) (1 diff)
-
template-parts/content-wrapper-start.php (modified) (3 diffs)
-
templates/template-categories.php (modified) (1 diff)
-
widgets (deleted)
Legend:
- Unmodified
- Added
- Removed
-
letterra/1.0.3/assets/css/style.css
r350985 r354930 120 120 } 121 121 122 .custom-container {@apply container mx-auto px-4 md:px-6 py-10;}123 124 .custom-container.with-sidebar {@apply grid grid-cols-1 lg:grid-cols-3 2xl:grid-cols-4 gap-6;} 122 .custom-container {@apply container lg:max-w-5xl mx-auto px-4 md:px-6 py-10;} 123 124 /* .custom-container.with-sidebar {@apply grid grid-cols-1;} */ 125 125 126 126 .container-not-found {@apply custom-container h-full px-6 py-20 flex items-center justify-center;} … … 138 138 139 139 .button { 140 @apply inline-block px-6 py-3 bg-grey hover:bg-pink cursor-pointer text-white rounded-fullhover:bg-opacity-90 transition-all duration-300 ease-in-out mt-4;140 @apply text-xs inline-block px-4 py-2 bg-grey hover:bg-pink cursor-pointer text-white rounded hover:bg-opacity-90 transition-all duration-300 ease-in-out mt-4; 141 141 } 142 142 … … 152 152 } 153 153 154 .floating-icon {155 @apply absolute right-4 w-10 h-10 flex items-center justify-center rounded-full bg-pink text-white shadow-lg;156 }157 158 /* Post Floating Icon */159 .floating-icon-top {@apply -top-5;}160 161 .floating-icon-bottom {@apply bottom-4;}162 163 154 /****************************************************************************************/ 164 155 … … 166 157 header {@apply py-10 bg-white relative w-full !border-t-0 !border-l-0 !border-r-0 !px-0;} 167 158 168 .header-inner {@apply flex flex-col xxs:flex-row gap-4 justify-between lg:justify-normal xxs:items-center;}159 .header-inner {@apply flex flex-col justify-between lg:justify-normal;} 169 160 170 161 #menu-header-menu, … … 174 165 175 166 .navbar-wrap { 176 @apply shadow-lg lg:shadow-none fixed lg:relative -translate-x-full lg:translate-x-0 w-64 lg:w-auto h-screen lg:h-auto transition-all duration-300 ease-in-out bg-white top-0 left-0 lg:flex flex-1 items-center basis-0 py-5 lg:p-0 z-50;167 @apply border-y border-gray-200 shadow-lg lg:shadow-none fixed lg:relative -translate-x-full lg:translate-x-0 w-64 lg:w-auto h-screen lg:h-auto transition-all duration-300 ease-in-out bg-white top-0 left-0 lg:flex flex-1 items-center justify-center basis-0 py-5 lg:p-0 z-50; 177 168 } 178 169 … … 188 179 189 180 .navbar-wrap .menu ul, 190 .navbar-wrap .menu {@apply lg:flex lg:flex-wrap lg:ms-12;}181 .navbar-wrap .menu {@apply lg:flex lg:flex-wrap;} 191 182 192 183 .navbar-wrap .menu li.current_page_parent > a, … … 214 205 .navbar-wrap .menu li.menu-item-has-children > a {@apply lg:pe-10;} 215 206 .navbar-wrap .menu > ul > li > a, 216 .navbar-wrap .menu > li > a {@apply py-2 lg:py- 6;}207 .navbar-wrap .menu > li > a {@apply py-2 lg:py-4;} 217 208 218 209 .navbar-wrap .menu li.menu-item-has-children {@apply relative;} … … 237 228 238 229 .navbar-wrap .menu li.menu-item-has-children ul.sub-menu li a {@apply w-full lg:px-5;} 239 230 .navbar-wrap .menu ul.sub-menu > li {width:100%;} 240 231 .navbar-wrap .menu > li.menu-item-has-children > ul.sub-menu > li > ul.sub-menu { 241 232 @apply left-full top-0 … … 251 242 252 243 .header-buttons {@apply flex lg:hidden flex-wrap items-center gap-4;} 253 /* #open-menu {@apply flex lg:hidden;} */254 /* .main-post {@apply bottom-12 inset-x-12 absolute z-10;} */255 244 /****************************************************************************************/ 256 245 257 246 /* Main Post */ 258 .main-post-wrapper {@apply grid grid-cols-1 md:grid-cols-2 xl:grid-cols-2 2xl:grid-cols-3 gap-4;} 259 .author-posts-wrapper {@apply grid md:grid-cols-2 xl:grid-cols-1 gap-4;} 260 .main-post-wrapper-without-sidebar {@apply grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-4 gap-4;} 261 262 .main-post-image-wrapper {@apply relative max-h-60 h-60 overflow-hidden;} 247 .main-post-wrapper {@apply grid grid-cols-1 md:grid-cols-2 xl:grid-cols-2 2xl:grid-cols-1 gap-4;} 248 .author-posts-wrapper {@apply grid md:grid-cols-1 xl:grid-cols-1 gap-4;} 249 .author-meta-wrapper {@apply flex gap-2 items-center;} 250 .main-post-wrapper-without-sidebar {@apply grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 2xl:grid-cols-1 gap-4;} 251 252 .main-post-image-wrapper {@apply relative max-h-64 w-72 h-64 overflow-hidden;} 263 253 264 254 .post-shadow {@apply bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 ease-in-out overflow-hidden;} … … 266 256 .post-title {@apply text-xl font-bold text-grey lowercase first-letter:capitalize mb-2 leading-snug group-hover:text-pink transition-all duration-300 ease-in-out break-words;} 267 257 268 .main-post-category {@apply flex flex-wrap gap- 1;}258 .main-post-category {@apply flex flex-wrap gap-x-2;} 269 259 .main-post-category.with-tags {@apply mt-2;} 270 260 … … 276 266 277 267 .read-more {@apply text-grey font-medium inline-block break-words;} 278 279 /* .wrap {@apply relative rounded-xl overflow-hidden; box-shadow: 0 8px 20px rgb(32 54 86 / 0.3);} */280 268 281 269 /* Post Pagination */ … … 302 290 303 291 .single-post-title {@apply text-2xl lg:text-4xl font-bold text-grey mb-4 leading-snug lowercase first-letter:capitalize break-words;} 304 .single-post-category {@apply flex flex-wrap gap-2 pb-6;}305 306 .single-post-category-title {@apply bg-pink text-white text-sm px-4 py-1 rounded-full;}307 292 308 293 .single-post-share-icons {@apply grid grid-cols-2 items-start py-10 border-t border-gray-200;} … … 314 299 .post-description p {@apply mb-6 last:mb-0;} 315 300 316 .post-description {@apply text-gray-500 text-sm p y-10 leading-relaxed;}301 .post-description {@apply text-gray-500 text-sm pb-10 leading-relaxed;} 317 302 318 303 .post-description blockquote { … … 364 349 365 350 /* Single Page Pagination */ 366 .single-post .nav-links {@apply flex-col sm:flex-row justify-between gap-6 mt-0 mb-0;}351 .single-post .nav-links {@apply flex-col sm:flex-row items-center justify-between gap-6 mt-0 mb-0;} 367 352 368 353 .single-post .nav-links .nav-previous a, 369 354 .single-post .nav-links .nav-next a { 370 @apply rounded-lg bg-white border border-gray-200 inline-block p-8text-lg leading-6 text-grey font-bold hover:text-pink transition-all duration-300 ease-in-out w-full sm:max-w-96 sm:min-w-96 h-full;355 @apply bg-white inline-block text-lg leading-6 text-grey font-bold hover:text-pink transition-all duration-300 ease-in-out w-full sm:max-w-96 sm:min-w-96 h-full; 371 356 } 372 357 373 358 .single-post .nav-links .nav-next {@apply text-end;} 374 359 375 .single-post-pagination {@apply flex justify-between items-center my-10 border- ypy-10;}360 .single-post-pagination {@apply flex justify-between items-center my-10 border-t py-10;} 376 361 377 362 .single-post-pagination .pagination-text {@apply text-gray-500 text-sm font-normal inline-block mb-2;} 378 363 379 .single-post-pagination .pagination-link {@apply block font-bold break-words ;}380 381 .post-media {@apply m t-10;}364 .single-post-pagination .pagination-link {@apply block font-bold break-words text-base;} 365 366 .post-media {@apply mb-10;} 382 367 383 368 .post-media img {@apply w-full rounded-lg;} … … 415 400 416 401 .required-field-message .required {@apply text-red-400;} 417 402 .comment-form { 403 @apply flex flex-wrap flex-col gap-4; 404 } 418 405 #commentform label {@apply text-sm font-bold text-grey;} 419 406 … … 431 418 432 419 .comment-respond {@apply mt-12;} 420 433 421 /****************************************************************************************/ 434 422 … … 438 426 .archive-main-wrap p {@apply text-sm text-gray-500 mt-2;} 439 427 440 .archive-wrapper {@apply text-xl font-bold text-gray-800 leading-snug flex flex-col-reverse sm:flex-row gap-4 sm:items-center justify-between flex-wrap;}441 428 442 429 .archive-wrapper .archive-selected-category {@apply inline-block px-3 py-1.5 rounded-full border border-gray-200 text-gray-500 text-sm font-normal ms-2;} 443 430 444 .archive-wrapper-wtih-filter {@apply justify-between;} 445 446 .tags-wrapper {@apply my-10 flex flex-wrap gap-x-2 gap-y-2;} 447 448 .category-wrapper {@apply my-10;} 431 .tags-wrapper {@apply flex flex-wrap items-center justify-center gap-x-2 gap-y-2;} 432 433 .category-wrapper {@apply mt-0 mb-2;} 449 434 .category-list .category-wrapper { 450 435 @apply grid grid-cols-4 gap-2; … … 463 448 @apply text-grey text-xs font-medium lowercase inline-block first-letter:capitalize underline hover:text-pink; 464 449 } 465 .clear-all {@apply flex items-center gap-1 no-underline text-sm text-grey hover:text-pink transition-all;}466 450 467 451 /******************************************************************************************************/ … … 474 458 .author-link {@apply hover:text-pink transition;} 475 459 476 .author-date {@apply text- tinytext-gray-500;}477 478 .author-details-wrapper {@apply p-6 bg-author rounded-lg flex flex-col sm:flex-row gap-2 sm:gap-5 items-start;}479 480 .author-details-wrapper .author-image-link {@apply inline-block w-16 h-16 md:w-24 md:h-24rounded-full overflow-hidden;}460 .author-date {@apply text-xs font-medium text-gray-500;} 461 462 .author-details-wrapper {@apply flex flex-col text-center items-center;} 463 464 .author-details-wrapper .author-image-link {@apply inline-block w-16 h-16 rounded-full overflow-hidden;} 481 465 482 466 .author-details-wrapper .author-info {@apply text-xl font-bold text-grey capitalize;} … … 486 470 .author-details-wrapper .author-bio {@apply text-gray-500 text-sm mt-2 leading-relaxed;} 487 471 .author-details-wrapper .social-icons {@apply mt-3;} 488 .author-post-wrapper {@apply flex flex-col xl:flex-row flex-wrap xl:py-6 xl:px-6 xl:gap-6;} 489 490 .author-post-image {@apply relative max-h-60 h-60 xl:w-72 xl:rounded-lg overflow-hidden;} 491 492 .author-post-content {@apply relative p-6 xl:p-0 w-full xl:w-[calc(100%-312px)];} 472 .author-post-wrapper {@apply flex flex-wrap;} 473 474 475 .author-post-content {@apply relative py-4 px-6 w-full xl:w-[calc(100%-288px)];} 493 476 494 477 /********************************************************************************************************/ … … 542 525 /**********************************************************************************************************************************************/ 543 526 544 /* Plugin Css */ 545 /* Sidebar About Content Css */ 546 .sidebar-area .sidebar { 547 @apply lg:sticky lg:top-[108px]; 548 } 549 .sidebar-area { 550 @apply w-full col-span-1 lg:col-span-1 order-1 lg:order-2; 551 } 552 .sidebar .sidebar-wrapper { 553 @apply py-6 sm:py-8 px-4 sm:px-6 bg-white border border-gray-200 rounded-xl mb-5; 554 } 555 .sidebar .sidebar-about-wrapper > div {@apply min-h-36;} 556 .sidebar .sidebar_about_logo { 557 @apply flex flex-col text-center gap-6 relative; 558 } 559 .sidebar .sidebar_about_logo ul { 560 @apply justify-center; 561 } 562 .sidebar .sidebar_about_logo img { 563 @apply mx-auto; 564 } 527 565 528 .sidebar-tags-wrapper ul li.active-tag a, 529 .sidebar-categories-wrapper .category-wrapper { 530 @apply flex flex-wrap items-center justify-center gap-2; 531 } 532 .sidebar-categories-wrapper ul li.active-category { 533 @apply border-pink; 534 } 566 535 .sidebar-categories-wrapper ul li.active-category a { 567 536 @apply text-pink; … … 571 540 } 572 541 .sidebar-title { 573 @apply text-center m b-4 mt-0;542 @apply text-center mt-0 text-tiny font-medium text-gray-500 mb-2; 574 543 } 575 544 .archive-main-wrap .sidebar-title { … … 580 549 } 581 550 .archive-main-wrap .sidebar-title-border {@apply justify-start;} 582 .sidebar-about-map {583 @apply w-auto absolute inset-x-0 z-0 h-full max-h-40 mx-auto;584 }585 551 .category-title-wrapper { 586 @apply flex items-center justify- betweengap-2 mb-4;552 @apply flex items-center justify-center gap-2 mb-4; 587 553 } 588 554 .category-title-wrapper .sidebar-title {@apply mb-0;} 589 555 .topics-wrapper { 590 @apply flex items-center justify-between py-3 last:pb-0 relative after:content-[''] after:block after:h-[1px] after:w-full after:bg-fade-right after:top-0 after:absolute; 591 } 592 .topics-wrapper .topics { 593 @apply text-grey text-sm font-semibold hover:text-pink relative pl-9; 594 } 595 .topics-wrapper .topics-icon { 596 @apply absolute left-0 top-1 text-xs text-pink; 597 } 598 .topics-wrapper .topics-count { 599 @apply text-tiny text-gray-500; 556 @apply inline-block px-2 py-1 rounded border border-gray-200 text-gray-500 text-xs font-medium hover:border-grey hover:text-grey transition-all duration-300 ease-in-out; 600 557 } 601 558 .sidebar-about-content { … … 604 561 /****************************************************************************************/ 605 562 /* Popular Post Css */ 606 .popular-post-wrapper {607 @apply relative flex gap-4 xl:gap-6 py-3 sm:py-6 last:pb-0 after:content-[''] after:block after:h-[1px] after:w-full after:bg-fade-left after:bottom-0 after:absolute last:after:hidden;608 }609 .popular-post-image {@apply w-12 h-12 xl:w-16 xl:h-16 rounded-full overflow-hidden shrink-0;}610 611 .popular-post-content-wrapper {@apply text-sm text-grey;}612 613 .popular-post-title {614 @apply block lowercase first-letter:capitalize font-semibold leading-5 group-hover:text-pink transition-all duration-300 ease-in-out;615 }616 563 .about-title { 617 @apply m-0 ;618 } 564 @apply m-0 text-lg uppercase font-bold text-grey; 565 } -
letterra/1.0.3/assets/css/style.min.css
r350985 r354930 595 595 } 596 596 597 .visible {598 visibility: visible;599 }600 601 597 .collapse { 602 598 visibility: collapse; 603 }604 605 .static {606 position: static;607 599 } 608 600 … … 673 665 } 674 666 667 .mb-2 { 668 margin-bottom: 0.5rem; 669 } 670 675 671 .mb-4 { 676 672 margin-bottom: 1rem; … … 685 681 } 686 682 687 .mt- 2{688 margin-top: 0. 5rem;683 .mt-1 { 684 margin-top: 0.25rem; 689 685 } 690 686 … … 709 705 } 710 706 711 .grid {712 display: grid;713 }714 715 707 .hidden { 716 708 display: none; 717 709 } 718 710 719 .h-8 { 720 height: 2rem; 711 .\!size-24 { 712 width: 6rem !important; 713 height: 6rem !important; 714 } 715 716 .h-6 { 717 height: 1.5rem; 721 718 } 722 719 … … 725 722 } 726 723 727 .h-auto { 728 height: auto; 729 } 730 731 .min-h-36 { 732 min-height: 9rem; 733 } 734 735 .w-44 { 736 width: 11rem; 724 .w-\[calc\(100\%-288px\)\] { 725 width: calc(100% - 288px); 737 726 } 738 727 … … 765 754 } 766 755 767 .\!transform {768 transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;769 }770 771 .transform {772 transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));773 }774 775 756 .resize { 776 757 resize: both; 777 758 } 778 759 779 . flex-row-reverse{780 flex-direction: row -reverse;760 .\!flex-row { 761 flex-direction: row !important; 781 762 } 782 763 … … 803 784 .justify-between { 804 785 justify-content: space-between; 786 } 787 788 .\!gap-4 { 789 gap: 1rem !important; 805 790 } 806 791 … … 827 812 } 828 813 814 .\!rounded { 815 border-radius: 0.25rem !important; 816 } 817 829 818 .rounded-full { 830 819 border-radius: 9999px; … … 858 847 } 859 848 849 .bg-author { 850 --tw-bg-opacity: 1; 851 background-color: rgb(241 248 255 / var(--tw-bg-opacity, 1)); 852 } 853 860 854 .bg-white { 861 855 --tw-bg-opacity: 1; … … 868 862 } 869 863 864 .\!p-6 { 865 padding: 1.5rem !important; 866 } 867 870 868 .p-6 { 871 869 padding: 1.5rem; … … 877 875 } 878 876 877 .\!py-6 { 878 padding-top: 1.5rem !important; 879 padding-bottom: 1.5rem !important; 880 } 881 879 882 .px-5 { 880 883 padding-left: 1.25rem; … … 882 885 } 883 886 887 .px-6 { 888 padding-left: 1.5rem; 889 padding-right: 1.5rem; 890 } 891 884 892 .py-10 { 885 893 padding-top: 2.5rem; … … 892 900 } 893 901 902 .py-4 { 903 padding-top: 1rem; 904 padding-bottom: 1rem; 905 } 906 894 907 .py-6 { 895 908 padding-top: 1.5rem; … … 905 918 } 906 919 907 .pt-4 { 908 padding-top: 1rem; 920 .pb-5 { 921 padding-bottom: 1.25rem; 922 } 923 924 .pt-0 { 925 padding-top: 0px; 909 926 } 910 927 … … 913 930 } 914 931 932 .\!text-start { 933 text-align: start !important; 934 } 935 915 936 .text-start { 916 937 text-align: start; 938 } 939 940 .text-3xl { 941 font-size: 1.875rem; 942 line-height: 2.25rem; 917 943 } 918 944 … … 927 953 } 928 954 929 .text-\[10px\] {930 font-size: 10px;931 }932 933 955 .text-lg { 934 956 font-size: 1.125rem; … … 941 963 } 942 964 965 .text-xl { 966 font-size: 1.25rem; 967 line-height: 1.75rem; 968 } 969 943 970 .text-xs { 944 971 font-size: 0.75rem; … … 981 1008 } 982 1009 983 .shadow { 984 --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); 985 --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); 986 box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 987 } 988 989 .blur { 990 --tw-blur: blur(8px); 991 filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); 992 } 993 994 .invert { 995 --tw-invert: invert(100%); 996 filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); 997 } 998 999 .filter { 1000 filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); 1001 } 1002 1003 .transition { 1004 transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; 1005 transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 1006 transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; 1007 transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1008 transition-duration: 150ms; 1010 .text-pink { 1011 --tw-text-opacity: 1; 1012 color: rgb(85 25 35 / var(--tw-text-opacity, 1)); 1009 1013 } 1010 1014 … … 1279 1283 } 1280 1284 1281 .custom-container.with-sidebar {1282 display: grid;1283 grid-template-columns: repeat(1, minmax(0, 1fr));1284 gap: 1.5rem;1285 }1286 1287 1285 @media (min-width: 1024px) { 1288 .custom-container.with-sidebar { 1289 grid-template-columns: repeat(3, minmax(0, 1fr)); 1290 } 1291 } 1292 1293 @media (min-width: 1536px) { 1294 .custom-container.with-sidebar { 1295 grid-template-columns: repeat(4, minmax(0, 1fr)); 1296 } 1297 } 1286 .custom-container { 1287 max-width: 64rem; 1288 } 1289 } 1290 1291 /* .custom-container.with-sidebar {@apply grid grid-cols-1;} */ 1298 1292 1299 1293 .container-not-found { … … 1361 1355 } 1362 1356 1363 .container-not-found.with-sidebar {1364 display: grid;1365 grid-template-columns: repeat(1, minmax(0, 1fr));1366 gap: 1.5rem;1367 }1368 1369 1357 @media (min-width: 1024px) { 1370 .container-not-found.with-sidebar { 1371 grid-template-columns: repeat(3, minmax(0, 1fr)); 1372 } 1373 } 1374 1375 @media (min-width: 1536px) { 1376 .container-not-found.with-sidebar { 1377 grid-template-columns: repeat(4, minmax(0, 1fr)); 1358 .container-not-found { 1359 max-width: 64rem; 1378 1360 } 1379 1361 } … … 1430 1412 display: inline-block; 1431 1413 cursor: pointer; 1432 border-radius: 9999px;1414 border-radius: 0.25rem; 1433 1415 --tw-bg-opacity: 1; 1434 1416 background-color: rgb(32 54 86 / var(--tw-bg-opacity, 1)); 1435 padding-left: 1.5rem; 1436 padding-right: 1.5rem; 1437 padding-top: 0.75rem; 1438 padding-bottom: 0.75rem; 1417 padding-left: 1rem; 1418 padding-right: 1rem; 1419 padding-top: 0.5rem; 1420 padding-bottom: 0.5rem; 1421 font-size: 0.75rem; 1422 line-height: 1rem; 1439 1423 --tw-text-opacity: 1; 1440 1424 color: rgb(255 255 255 / var(--tw-text-opacity, 1)); … … 1498 1482 --tw-scale-y: 1.1; 1499 1483 transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); 1500 }1501 1502 .floating-icon {1503 position: absolute;1504 right: 1rem;1505 display: flex;1506 height: 2.5rem;1507 width: 2.5rem;1508 align-items: center;1509 justify-content: center;1510 border-radius: 9999px;1511 --tw-bg-opacity: 1;1512 background-color: rgb(85 25 35 / var(--tw-bg-opacity, 1));1513 --tw-text-opacity: 1;1514 color: rgb(255 255 255 / var(--tw-text-opacity, 1));1515 --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);1516 --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);1517 box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);1518 }1519 1520 /* Post Floating Icon */1521 1522 .floating-icon-top {1523 top: -1.25rem;1524 }1525 1526 .floating-icon-bottom {1527 bottom: 1rem;1528 1484 } 1529 1485 … … 1550 1506 flex-direction: column; 1551 1507 justify-content: space-between; 1552 gap: 1rem;1553 }1554 1555 @media (min-width: 420px) {1556 .header-inner {1557 flex-direction: row;1558 align-items: center;1559 }1560 1508 } 1561 1509 … … 1602 1550 transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); 1603 1551 align-items: center; 1552 justify-content: center; 1553 border-top-width: 1px; 1554 border-bottom-width: 1px; 1555 --tw-border-opacity: 1; 1556 border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); 1604 1557 --tw-bg-opacity: 1; 1605 1558 background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); … … 1685 1638 .navbar-wrap .menu ul, 1686 1639 .navbar-wrap .menu { 1687 margin-inline-start: 3rem;1688 1640 display: flex; 1689 1641 flex-wrap: wrap; … … 1753 1705 .navbar-wrap .menu > ul > li > a, 1754 1706 .navbar-wrap .menu > li > a { 1755 padding-top: 1 .5rem;1756 padding-bottom: 1 .5rem;1707 padding-top: 1rem; 1708 padding-bottom: 1rem; 1757 1709 } 1758 1710 } … … 1826 1778 } 1827 1779 1780 .navbar-wrap .menu ul.sub-menu > li { 1781 width:100%; 1782 } 1783 1828 1784 .navbar-wrap .menu > li.menu-item-has-children > ul.sub-menu > li > ul.sub-menu { 1829 1785 left: 100%; … … 1876 1832 } 1877 1833 1878 /* #open-menu {@apply flex lg:hidden;} */1879 1880 /* .main-post {@apply bottom-12 inset-x-12 absolute z-10;} */1881 1882 1834 /****************************************************************************************/ 1883 1835 … … 1904 1856 @media (min-width: 1536px) { 1905 1857 .main-post-wrapper { 1906 grid-template-columns: repeat( 3, minmax(0, 1fr));1858 grid-template-columns: repeat(1, minmax(0, 1fr)); 1907 1859 } 1908 1860 } … … 1915 1867 @media (min-width: 768px) { 1916 1868 .author-posts-wrapper { 1917 grid-template-columns: repeat( 2, minmax(0, 1fr));1869 grid-template-columns: repeat(1, minmax(0, 1fr)); 1918 1870 } 1919 1871 } … … 1923 1875 grid-template-columns: repeat(1, minmax(0, 1fr)); 1924 1876 } 1877 } 1878 1879 .author-meta-wrapper { 1880 display: flex; 1881 align-items: center; 1882 gap: 0.5rem; 1925 1883 } 1926 1884 … … 1945 1903 @media (min-width: 1536px) { 1946 1904 .main-post-wrapper-without-sidebar { 1947 grid-template-columns: repeat( 4, minmax(0, 1fr));1905 grid-template-columns: repeat(1, minmax(0, 1fr)); 1948 1906 } 1949 1907 } … … 1951 1909 .main-post-image-wrapper { 1952 1910 position: relative; 1953 height: 15rem; 1954 max-height: 15rem; 1911 height: 16rem; 1912 max-height: 16rem; 1913 width: 18rem; 1955 1914 overflow: hidden; 1956 1915 } … … 2002 1961 display: flex; 2003 1962 flex-wrap: wrap; 2004 gap: 0.25rem; 1963 -moz-column-gap: 0.5rem; 1964 column-gap: 0.5rem; 2005 1965 } 2006 1966 … … 2048 2008 color: rgb(32 54 86 / var(--tw-text-opacity, 1)); 2049 2009 } 2050 2051 /* .wrap {@apply relative rounded-xl overflow-hidden; box-shadow: 0 8px 20px rgb(32 54 86 / 0.3);} */2052 2010 2053 2011 /* Post Pagination */ … … 2158 2116 } 2159 2117 2160 .single-post-category {2161 display: flex;2162 flex-wrap: wrap;2163 gap: 0.5rem;2164 padding-bottom: 1.5rem;2165 }2166 2167 .single-post-category-title {2168 border-radius: 9999px;2169 --tw-bg-opacity: 1;2170 background-color: rgb(85 25 35 / var(--tw-bg-opacity, 1));2171 padding-left: 1rem;2172 padding-right: 1rem;2173 padding-top: 0.25rem;2174 padding-bottom: 0.25rem;2175 font-size: 0.875rem;2176 line-height: 1.25rem;2177 --tw-text-opacity: 1;2178 color: rgb(255 255 255 / var(--tw-text-opacity, 1));2179 }2180 2181 2118 .single-post-share-icons { 2182 2119 display: grid; … … 2214 2151 2215 2152 .post-description { 2216 padding-top: 2.5rem;2217 2153 padding-bottom: 2.5rem; 2218 2154 font-size: 0.875rem; … … 2324 2260 margin-bottom: 0px; 2325 2261 flex-direction: column; 2262 align-items: center; 2326 2263 justify-content: space-between; 2327 2264 gap: 1.5rem; … … 2339 2276 height: 100%; 2340 2277 width: 100%; 2341 border-radius: 0.5rem;2342 border-width: 1px;2343 --tw-border-opacity: 1;2344 border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));2345 2278 --tw-bg-opacity: 1; 2346 2279 background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); 2347 padding: 2rem;2348 2280 font-size: 1.125rem; 2349 2281 font-weight: 700; … … 2381 2313 justify-content: space-between; 2382 2314 border-top-width: 1px; 2383 border-bottom-width: 1px;2384 2315 padding-top: 2.5rem; 2385 2316 padding-bottom: 2.5rem; … … 2399 2330 display: block; 2400 2331 overflow-wrap: break-word; 2332 font-size: 1rem; 2333 line-height: 1.5rem; 2401 2334 font-weight: 700; 2402 2335 } 2403 2336 2404 2337 .post-media { 2405 margin- top: 2.5rem;2338 margin-bottom: 2.5rem; 2406 2339 } 2407 2340 … … 2558 2491 --tw-text-opacity: 1; 2559 2492 color: rgb(248 113 113 / var(--tw-text-opacity, 1)); 2493 } 2494 2495 .comment-form { 2496 display: flex; 2497 flex-direction: column; 2498 flex-wrap: wrap; 2499 gap: 1rem; 2560 2500 } 2561 2501 … … 2663 2603 --tw-text-opacity: 1; 2664 2604 color: rgb(107 114 128 / var(--tw-text-opacity, 1)); 2665 }2666 2667 .archive-wrapper {2668 display: flex;2669 flex-direction: column-reverse;2670 flex-wrap: wrap;2671 justify-content: space-between;2672 gap: 1rem;2673 font-size: 1.25rem;2674 line-height: 1.75rem;2675 font-weight: 700;2676 line-height: 1.375;2677 --tw-text-opacity: 1;2678 color: rgb(31 41 55 / var(--tw-text-opacity, 1));2679 }2680 2681 @media (min-width: 640px) {2682 .archive-wrapper {2683 flex-direction: row;2684 align-items: center;2685 }2686 2605 } 2687 2606 … … 2704 2623 } 2705 2624 2706 .archive-wrapper-wtih-filter {2707 justify-content: space-between;2708 }2709 2710 2625 .tags-wrapper { 2711 margin-top: 2.5rem;2712 margin-bottom: 2.5rem;2713 2626 display: flex; 2714 2627 flex-wrap: wrap; 2628 align-items: center; 2629 justify-content: center; 2715 2630 -moz-column-gap: 0.5rem; 2716 2631 column-gap: 0.5rem; … … 2719 2634 2720 2635 .category-wrapper { 2721 margin-top: 2.5rem;2722 margin-bottom: 2.5rem;2636 margin-top: 0px; 2637 margin-bottom: 0.5rem; 2723 2638 } 2724 2639 … … 2797 2712 } 2798 2713 2799 .clear-all {2800 display: flex;2801 align-items: center;2802 gap: 0.25rem;2803 font-size: 0.875rem;2804 line-height: 1.25rem;2805 --tw-text-opacity: 1;2806 color: rgb(32 54 86 / var(--tw-text-opacity, 1));2807 text-decoration-line: none;2808 transition-property: all;2809 transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);2810 transition-duration: 150ms;2811 }2812 2813 .clear-all:hover {2814 --tw-text-opacity: 1;2815 color: rgb(85 25 35 / var(--tw-text-opacity, 1));2816 }2817 2818 2714 /******************************************************************************************************/ 2819 2715 … … 2863 2759 2864 2760 .author-date { 2865 font-size: 13px; 2761 font-size: 0.75rem; 2762 line-height: 1rem; 2763 font-weight: 500; 2866 2764 --tw-text-opacity: 1; 2867 2765 color: rgb(107 114 128 / var(--tw-text-opacity, 1)); … … 2871 2769 display: flex; 2872 2770 flex-direction: column; 2873 align-items: flex-start; 2874 gap: 0.5rem; 2875 border-radius: 0.5rem; 2876 --tw-bg-opacity: 1; 2877 background-color: rgb(241 248 255 / var(--tw-bg-opacity, 1)); 2878 padding: 1.5rem; 2879 } 2880 2881 @media (min-width: 640px) { 2882 .author-details-wrapper { 2883 flex-direction: row; 2884 gap: 1.25rem; 2885 } 2771 align-items: center; 2772 text-align: center; 2886 2773 } 2887 2774 … … 2892 2779 overflow: hidden; 2893 2780 border-radius: 9999px; 2894 }2895 2896 @media (min-width: 768px) {2897 .author-details-wrapper .author-image-link {2898 height: 6rem;2899 width: 6rem;2900 }2901 2781 } 2902 2782 … … 2939 2819 .author-post-wrapper { 2940 2820 display: flex; 2941 flex-direction: column;2942 2821 flex-wrap: wrap; 2943 }2944 2945 @media (min-width: 1280px) {2946 .author-post-wrapper {2947 flex-direction: row;2948 gap: 1.5rem;2949 padding-top: 1.5rem;2950 padding-bottom: 1.5rem;2951 padding-left: 1.5rem;2952 padding-right: 1.5rem;2953 }2954 }2955 2956 .author-post-image {2957 position: relative;2958 height: 15rem;2959 max-height: 15rem;2960 overflow: hidden;2961 }2962 2963 @media (min-width: 1280px) {2964 .author-post-image {2965 width: 18rem;2966 border-radius: 0.5rem;2967 }2968 2822 } 2969 2823 … … 2971 2825 position: relative; 2972 2826 width: 100%; 2973 padding: 1.5rem; 2827 padding-top: 1rem; 2828 padding-bottom: 1rem; 2829 padding-left: 1.5rem; 2830 padding-right: 1.5rem; 2974 2831 } 2975 2832 2976 2833 @media (min-width: 1280px) { 2977 2834 .author-post-content { 2978 width: calc(100% - 312px); 2979 padding: 0px; 2835 width: calc(100% - 288px); 2980 2836 } 2981 2837 } … … 3112 2968 /**********************************************************************************************************************************************/ 3113 2969 3114 /* Plugin Css */ 3115 3116 /* Sidebar About Content Css */ 3117 3118 @media (min-width: 1024px) { 3119 .sidebar-area .sidebar { 3120 position: sticky; 3121 top: 108px; 3122 } 3123 } 3124 3125 .sidebar-area { 3126 order: 1; 3127 grid-column: span 1 / span 1; 3128 width: 100%; 3129 } 3130 3131 @media (min-width: 1024px) { 3132 .sidebar-area { 3133 order: 2; 3134 grid-column: span 1 / span 1; 3135 } 3136 } 3137 3138 .sidebar .sidebar-wrapper { 3139 margin-bottom: 1.25rem; 3140 border-radius: 0.75rem; 3141 border-width: 1px; 2970 .sidebar-tags-wrapper ul li.active-tag a, 2971 .sidebar-categories-wrapper .category-wrapper { 2972 display: flex; 2973 flex-wrap: wrap; 2974 align-items: center; 2975 justify-content: center; 2976 gap: 0.5rem; 2977 } 2978 2979 .sidebar-categories-wrapper ul li.active-category { 3142 2980 --tw-border-opacity: 1; 3143 border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); 3144 --tw-bg-opacity: 1; 3145 background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); 3146 padding-top: 1.5rem; 3147 padding-bottom: 1.5rem; 3148 padding-left: 1rem; 3149 padding-right: 1rem; 3150 } 3151 3152 @media (min-width: 640px) { 3153 .sidebar .sidebar-wrapper { 3154 padding-top: 2rem; 3155 padding-bottom: 2rem; 3156 padding-left: 1.5rem; 3157 padding-right: 1.5rem; 3158 } 3159 } 3160 3161 .sidebar .sidebar-about-wrapper > div { 3162 min-height: 9rem; 3163 } 3164 3165 .sidebar .sidebar_about_logo { 3166 position: relative; 3167 display: flex; 3168 flex-direction: column; 3169 gap: 1.5rem; 3170 text-align: center; 3171 } 3172 3173 .sidebar .sidebar_about_logo ul { 3174 justify-content: center; 3175 } 3176 3177 .sidebar .sidebar_about_logo img { 3178 margin-left: auto; 3179 margin-right: auto; 3180 } 3181 3182 .sidebar-tags-wrapper ul li.active-tag a, 2981 border-color: rgb(85 25 35 / var(--tw-border-opacity, 1)); 2982 } 2983 3183 2984 .sidebar-categories-wrapper ul li.active-category a { 3184 2985 --tw-text-opacity: 1; … … 3192 2993 3193 2994 .sidebar-title { 3194 margin-bottom: 1rem;3195 2995 margin-top: 0px; 2996 margin-bottom: 0.5rem; 3196 2997 text-align: center; 2998 font-size: 13px; 2999 font-weight: 500; 3000 --tw-text-opacity: 1; 3001 color: rgb(107 114 128 / var(--tw-text-opacity, 1)); 3197 3002 } 3198 3003 … … 3211 3016 } 3212 3017 3213 .sidebar-about-map {3214 position: absolute;3215 left: 0px;3216 right: 0px;3217 z-index: 0;3218 margin-left: auto;3219 margin-right: auto;3220 height: 100%;3221 max-height: 10rem;3222 width: auto;3223 }3224 3225 3018 .category-title-wrapper { 3226 3019 margin-bottom: 1rem; 3227 3020 display: flex; 3228 3021 align-items: center; 3229 justify-content: space-between;3022 justify-content: center; 3230 3023 gap: 0.5rem; 3231 3024 } … … 3236 3029 3237 3030 .topics-wrapper { 3238 position: relative; 3239 display: flex; 3240 align-items: center; 3241 justify-content: space-between; 3242 padding-top: 0.75rem; 3243 padding-bottom: 0.75rem; 3244 } 3245 3246 .topics-wrapper::after { 3247 position: absolute; 3248 top: 0px; 3249 display: block; 3250 height: 1px; 3251 width: 100%; 3252 background-image: linear-gradient(to right, #EBEBEB 0%, transparent 100%);; 3253 --tw-content: ''; 3254 content: var(--tw-content); 3255 } 3256 3257 .topics-wrapper:last-child { 3258 padding-bottom: 0px; 3259 } 3260 3261 .topics-wrapper .topics { 3262 position: relative; 3263 padding-left: 2.25rem; 3264 font-size: 0.875rem; 3265 line-height: 1.25rem; 3266 font-weight: 600; 3267 --tw-text-opacity: 1; 3268 color: rgb(32 54 86 / var(--tw-text-opacity, 1)); 3269 } 3270 3271 .topics-wrapper .topics:hover { 3272 --tw-text-opacity: 1; 3273 color: rgb(85 25 35 / var(--tw-text-opacity, 1)); 3274 } 3275 3276 .topics-wrapper .topics-icon { 3277 position: absolute; 3278 left: 0px; 3279 top: 0.25rem; 3031 display: inline-block; 3032 border-radius: 0.25rem; 3033 border-width: 1px; 3034 --tw-border-opacity: 1; 3035 border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); 3036 padding-left: 0.5rem; 3037 padding-right: 0.5rem; 3038 padding-top: 0.25rem; 3039 padding-bottom: 0.25rem; 3280 3040 font-size: 0.75rem; 3281 3041 line-height: 1rem; 3282 --tw-text-opacity: 1; 3283 color: rgb(85 25 35 / var(--tw-text-opacity, 1)); 3284 } 3285 3286 .topics-wrapper .topics-count { 3287 font-size: 13px; 3042 font-weight: 500; 3288 3043 --tw-text-opacity: 1; 3289 3044 color: rgb(107 114 128 / var(--tw-text-opacity, 1)); 3045 transition-property: all; 3046 transition-duration: 300ms; 3047 transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 3048 } 3049 3050 .topics-wrapper:hover { 3051 --tw-border-opacity: 1; 3052 border-color: rgb(32 54 86 / var(--tw-border-opacity, 1)); 3053 --tw-text-opacity: 1; 3054 color: rgb(32 54 86 / var(--tw-text-opacity, 1)); 3290 3055 } 3291 3056 … … 3301 3066 /* Popular Post Css */ 3302 3067 3303 .popular-post-wrapper {3304 position: relative;3305 display: flex;3306 gap: 1rem;3307 padding-top: 0.75rem;3308 padding-bottom: 0.75rem;3309 }3310 3311 .popular-post-wrapper::after {3312 position: absolute;3313 bottom: 0px;3314 display: block;3315 height: 1px;3316 width: 100%;3317 background-image: linear-gradient(to left, #EBEBEB 0%, transparent 100%);3318 --tw-content: '';3319 content: var(--tw-content);3320 }3321 3322 .popular-post-wrapper:last-child {3323 padding-bottom: 0px;3324 }3325 3326 .popular-post-wrapper:last-child::after {3327 content: var(--tw-content);3328 display: none;3329 }3330 3331 @media (min-width: 640px) {3332 .popular-post-wrapper {3333 padding-top: 1.5rem;3334 padding-bottom: 1.5rem;3335 }3336 }3337 3338 @media (min-width: 1280px) {3339 .popular-post-wrapper {3340 gap: 1.5rem;3341 }3342 }3343 3344 .popular-post-image {3345 height: 3rem;3346 width: 3rem;3347 flex-shrink: 0;3348 overflow: hidden;3349 border-radius: 9999px;3350 }3351 3352 @media (min-width: 1280px) {3353 .popular-post-image {3354 height: 4rem;3355 width: 4rem;3356 }3357 }3358 3359 .popular-post-content-wrapper {3360 font-size: 0.875rem;3361 line-height: 1.25rem;3362 --tw-text-opacity: 1;3363 color: rgb(32 54 86 / var(--tw-text-opacity, 1));3364 }3365 3366 .popular-post-title {3367 display: block;3368 font-weight: 600;3369 text-transform: lowercase;3370 line-height: 1.25rem;3371 transition-property: all;3372 transition-duration: 300ms;3373 transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);3374 }3375 3376 .popular-post-title::first-letter {3377 text-transform: capitalize;3378 }3379 3380 .group:hover .popular-post-title {3381 --tw-text-opacity: 1;3382 color: rgb(85 25 35 / var(--tw-text-opacity, 1));3383 }3384 3385 3068 .about-title { 3386 3069 margin: 0px; 3070 font-size: 1.125rem; 3071 line-height: 1.75rem; 3072 font-weight: 700; 3073 text-transform: uppercase; 3074 --tw-text-opacity: 1; 3075 color: rgb(32 54 86 / var(--tw-text-opacity, 1)); 3387 3076 } 3388 3077 … … 3394 3083 --tw-text-opacity: 1; 3395 3084 color: rgb(85 25 35 / var(--tw-text-opacity, 1)); 3396 }3397 3398 .group:hover .group-hover\:text-pink {3399 --tw-text-opacity: 1;3400 color: rgb(85 25 35 / var(--tw-text-opacity, 1));3401 }3402 3403 @media (min-width: 420px) {3404 .xxs\:flex-row {3405 flex-direction: row;3406 }3407 3085 } 3408 3086 … … 3428 3106 } 3429 3107 3430 .lg\:top-\[ 27px\] {3431 top: 27px;3108 .lg\:top-\[18px\] { 3109 top: 18px; 3432 3110 } 3433 3111 … … 3446 3124 } 3447 3125 } 3126 3127 @media (min-width: 1280px) { 3128 .xl\:\!grid-cols-3 { 3129 grid-template-columns: repeat(3, minmax(0, 1fr)) !important; 3130 } 3131 } -
letterra/1.0.3/category.php
r350985 r354930 7 7 ?> 8 8 <article id="post-<?php the_ID(); ?>" <?php post_class('group post-shadow'); ?>> 9 <div class=" ">9 <div class="flex flex-wrap"> 10 10 <?php 11 11 // Call the content post image template area … … 14 14 15 15 <!-- Content --> 16 <div class="p-6 relative">16 <div class="px-6 py-4 relative w-[calc(100%-288px)]"> 17 17 <?php 18 18 // Call the content post author meta template area -
letterra/1.0.3/footer.php
r350985 r354930 1 <footer class="bg-white border-t border-gray-200 py-6">1 <footer class="bg-white"> 2 2 <div 3 class="custom-container text-center flex flex-col md:flex-row items-center justify-between gap-4 md:text-start !py-0">3 class="custom-container border-t border-gray-200 !py-6 text-center flex flex-col md:flex-row items-center justify-between gap-4 md:text-start"> 4 4 <div class="text-gray-500 text-sm"> 5 5 <?php -
letterra/1.0.3/functions.php
r350985 r354930 2 2 require_once get_template_directory() . '/inc/customizer/customizer.php'; 3 3 require_once get_template_directory() . '/inc/custom-comment-layout.php'; 4 require_once get_template_directory() . '/inc/post-views.php';5 4 require_once get_template_directory() . '/inc/sidebar-about.php'; 6 5 require_once get_template_directory() . '/inc/sidebar-all-categories.php'; 7 6 require_once get_template_directory() . '/inc/sidebar-all-tags.php'; 8 require_once get_template_directory() . '/inc/sidebar-popular-posts.php';9 7 require_once get_template_directory() . '/inc/footer-social-icons.php'; 10 require_once get_template_directory() . '/widgets/class-letterra-popular-posts-widget.php';11 require_once get_template_directory() . '/widgets/class-letterra-categories-widget.php';12 require_once get_template_directory() . '/widgets/class-letterra-tags-widget.php';13 require_once get_template_directory() . '/widgets/class-letterra-sidebar-about-widget.php';14 8 15 9 // Check if sidebar is active … … 59 53 } 60 54 add_action('after_setup_theme', 'letterra_theme_setup'); 61 62 63 // Register widget area64 function letterra_widgets_init()65 {66 register_sidebar([67 'name' => __('Main Sidebar', 'letterra'),68 'id' => 'sidebar-1',69 'description' => __('Add widgets here.', 'letterra'),70 'before_widget' => '<div id="%1$s" class="widget %2$s">',71 'after_widget' => '</div>',72 'before_title' => '<h3 class="widget-title">',73 'after_title' => '</h3>',74 ]);75 }76 add_action('widgets_init', 'letterra_widgets_init');77 55 78 56 … … 87 65 wp_enqueue_style('letterra-font-awesome', get_template_directory_uri() . '/assets/css/fontawesome/all.min.css', [], '7.3.1'); 88 66 89 // Load Swiper CSS and JS only on single page if the post type is gallery and it has more than 1 image.90 $media_type = get_post_meta(get_the_ID(), 'letterra_core_media_type', true);91 92 if (! in_array($media_type, ['image', 'video', 'audio', 'gallery'], true)) {93 $media_type = 'none';94 }95 $gallery_images = get_post_meta(get_the_ID(), 'letterra_core_gallery_images', true);96 $count = is_array( $gallery_images ) ? count( $gallery_images ) : 0;97 98 if (is_single() && $media_type === 'gallery' && !empty($gallery_images) && is_array($gallery_images) && $count > 1) {99 wp_enqueue_style('letterra-swiper-css', get_template_directory_uri() . '/assets/css/swiper/swiper-bundle.min.css', array(), null);100 wp_enqueue_script('letterra-swiper-js', get_template_directory_uri() . '/assets/js/swiper/swiper-bundle.min.js', array(), null, true);101 wp_script_add_data('letterra-swiper-js', 'strategy', 'defer');102 wp_enqueue_script('letterra-single-js', get_template_directory_uri() . '/assets/js/single.min.js', array(), $theme_version, true);103 wp_script_add_data('letterra-single-js', 'strategy', 'defer');104 }105 67 // Theme compiled CSS with Tailwind 106 68 wp_enqueue_style('letterra-tailwind', get_template_directory_uri() . '/assets/css/style.min.css', array('letterra-main'), $theme_version); … … 132 94 } 133 95 $excerpt .= '...'; 134 // $excerpt .= '<span class="block mt-2"> <a href="' . esc_url(get_permalink()) . '" class="read-more group-hover:text-pink">' . sprintf(esc_html__('Read more', 'letterra')) . '</a></span>'; 135 $excerpt .= '<a href="' . esc_url(get_permalink()) . '" class="font-medium text-grey group-hover:text-pink block">' 96 $button = ''; 97 if(!is_single()) { 98 $button = 'button'; 99 } 100 else { 101 $button = 'hidden'; 102 } 103 $excerpt .= '<p><a href="' . esc_url(get_permalink()) . '" class="'.$button.'">' 136 104 . esc_html__('Read more', 'letterra') 137 105 . '<span class="screen-reader-text">' 138 106 . sprintf(esc_html__('about %s', 'letterra'), esc_html(get_the_title())) 139 . '</span></a> ';107 . '</span></a></p>'; 140 108 return $excerpt; 141 109 } … … 156 124 false, 157 125 [ 158 'class' => 'w-auto object-contain h- 8',126 'class' => 'w-auto object-contain h-6', 159 127 'alt' => esc_attr($site_name), 160 128 ] … … 177 145 } 178 146 179 // Check post type is video, audio, gallery or image180 function letterra_inside_get_media_type($post_id = null)181 {182 $post_id = $post_id ? $post_id : get_the_ID();183 184 // Getting value from plugin letterra Core185 return get_post_meta(186 $post_id,187 'letterra_core_media_type',188 true189 );190 }191 192 // Post Floating Icon193 function letterra_get_media_icon($post_id = null)194 {195 $media_type = letterra_inside_get_media_type($post_id);196 switch ($media_type) {197 case 'video':198 return '<i class="fa-solid fa-play" aria-hidden="true"></i>';199 200 case 'audio':201 return '<i class="fa-regular fa-headphones" aria-hidden="true"></i>';202 203 case 'gallery':204 return '<i class="fa-regular fa-images" aria-hidden="true"></i>';205 206 case 'image':207 default:208 return '<i class="fa-regular fa-image" aria-hidden="true"></i>';209 }210 }211 212 213 147 // Each post categories on listing page 214 148 function letterra_post_categories($post_id = null) … … 227 161 } 228 162 $output = '<div class="main-post-category">'; 229 $output .= '<span class="post-text">' . esc_html__('Categories:', 'letterra') . '</span>'; 230 163 if (is_single()) { 164 $output .= '<span class="post-text block w-full">' . esc_html__('Categories:', 'letterra') . '</span>'; 165 } 231 166 foreach ($categories as $cat) { 232 167 if (!is_object($cat)) { … … 273 208 274 209 $output = '<div class="main-post-category with-tags">'; 275 $output .= '<span class="post-text">' . esc_html__('Tags:', 'letterra') . '</span>'; 276 210 if (is_single()) { 211 $output .= '<span class="post-text block w-full">' . esc_html__('Tags:', 'letterra') . '</span>'; 212 } 277 213 foreach ($tags as $tag) { 278 214 … … 304 240 305 241 /* Add an arrow in header menus */ 306 function letterra_add_menu_arrow($item_output, $item , $depth, $args)242 function letterra_add_menu_arrow($item_output, $item) 307 243 { 308 244 if (in_array('menu-item-has-children', $item->classes, true)) { 309 $item_output .= '<button type="button" class="menu-arrow text-xs right-5 lg:right-5 absolute top-[9px] lg:top-[ 27px]" aria-expanded="false" aria-label="' . esc_attr(sprintf(__('Toggle submenu for %s', 'letterra'), $item->title)) . '">245 $item_output .= '<button type="button" class="menu-arrow text-xs right-5 lg:right-5 absolute top-[9px] lg:top-[18px]" aria-expanded="false" aria-label="' . esc_attr(sprintf(__('Toggle submenu for %s', 'letterra'), $item->title)) . '"> 310 246 <i class="fa-solid fa-chevron-down" aria-hidden="true"></i> 311 247 </button>'; … … 326 262 } 327 263 ?> 328 329 264 <div class="view-all-categories view-all-tags text-start flex items-center sm:justify-end flex-wrap gap-4"> 330 265 … … 359 294 360 295 </div> 361 362 296 <?php 363 297 } 364 298 } 365 366 function letterra_view_author_tags_links($author_id = 0)367 {368 369 $all_categories_page = get_theme_mod('letterra_all_categories_page', 0);370 $all_tags_page = get_theme_mod('letterra_all_tags_page', 0);371 372 // Nothing to display.373 if (! $all_categories_page && ! $all_tags_page) {374 return;375 }376 377 ?>378 379 <div class="view-all-categories view-all-tags text-start flex items-center flex-wrap gap-4 pt-4">380 381 <?php382 // All Categories.383 if ($all_categories_page && ! is_page($all_categories_page)) :384 385 $categories_url = get_permalink($all_categories_page);386 387 if ($author_id) {388 $categories_url = add_query_arg(389 'author_id',390 absint($author_id),391 $categories_url392 );393 }394 395 if ($categories_url) :396 ?>397 398 <a href="<?php echo esc_url($categories_url); ?>">399 <?php esc_html_e('View All Categories', 'letterra'); ?>400 </a>401 402 <?php403 endif;404 405 endif;406 ?>407 408 409 <?php410 // All Tags.411 if ($all_tags_page && ! is_page($all_tags_page)) :412 413 $tags_url = get_permalink($all_tags_page);414 415 if ($author_id) {416 $tags_url = add_query_arg(417 'author_id',418 absint($author_id),419 $tags_url420 );421 }422 423 if ($tags_url) :424 ?>425 426 <a href="<?php echo esc_url($tags_url); ?>">427 <?php esc_html_e('View All Tags', 'letterra'); ?>428 </a>429 430 <?php431 endif;432 433 endif;434 ?>435 436 </div>437 438 <?php439 }440 441 add_action('admin_notices', 'letterra_admin_notice');442 443 function letterra_admin_notice()444 {445 // Don't show the notice if the current user has already dismissed it.446 if (get_user_meta(get_current_user_id(), 'letterra_core_notice_dismissed', true)) {447 return;448 }449 // Only users who can manage theme options should see it.450 if (! current_user_can('manage_options')) {451 return;452 }453 $dismiss_url = wp_nonce_url(454 add_query_arg(455 array(456 'letterra_dismiss_core_notice' => '1',457 ),458 admin_url()459 ),460 'letterra_dismiss_core_notice'461 );462 ?>463 <div class="notice notice-info is-dismissible">464 <p>465 <?php466 printf(467 /* translators: %s: plugin name */468 wp_kses_post('%s plugin is recommended for additional %s theme features.', 'letterra'),469 '<strong>letterra Core</strong>',470 '<strong>letterra</strong>',471 );472 ?>473 <a href="<?php echo esc_url($dismiss_url); ?>">474 <?php esc_html_e('Dismiss', 'letterra'); ?>475 </a>476 </p>477 </div>478 <div class="notice notice-success is-dismissible">479 <p>480 <?php481 printf(482 wp_kses_post('Welcome to %s! You can configure your theme from the Customizer.', 'letterra'),483 '<strong>letterra</strong>'484 );485 ?>486 </p>487 </div>488 <?php489 }490 491 function letterra_dismiss_core_notice()492 {493 494 if (! isset($_GET['letterra_dismiss_core_notice'])) {495 return;496 }497 498 if (! current_user_can('manage_options')) {499 return;500 }501 502 check_admin_referer('letterra_dismiss_core_notice');503 504 update_user_meta(505 get_current_user_id(),506 'letterra_core_notice_dismissed',507 1508 );509 510 wp_safe_redirect(remove_query_arg(array(511 'letterra_dismiss_core_notice',512 '_wpnonce',513 )));514 exit;515 }516 add_action('admin_init', 'letterra_dismiss_core_notice');517 518 function letterra_register_widgets() {519 register_widget( 'letterra_Sidebar_About_Widget' );520 register_widget( 'letterra_Popular_Posts_Widget' );521 register_widget( 'letterra_Categories_Widget' );522 register_widget( 'letterra_Tags_Widget' );523 }524 525 add_action( 'widgets_init', 'letterra_register_widgets' );526 299 527 300 function letterra_preload_fonts() { -
letterra/1.0.3/header.php
r350985 r354930 12 12 <a class="screen-reader-text" href="#primary"> <?php esc_html_e('Skip to content', 'letterra'); ?></a> 13 13 14 <header class="header-default border-b border-gray-200py-3.5 lg:py-0 sticky top-0 bg-white z-50">14 <header class="header-default py-3.5 lg:py-0 sticky top-0 bg-white z-50"> 15 15 <div class="custom-container !py-0"> 16 16 <div class="header-inner"> 17 <div class="flex items-center justify- between flex-row-reverse xxs:flex-row gap-4">17 <div class="flex items-center justify-center gap-4 py-6"> 18 18 <div class="header-buttons"> 19 19 <button … … 49 49 ]); ?> 50 50 </nav> 51 <div class="header-right">52 <?php get_search_form(); ?>53 </div>54 51 </div> 55 52 </div> -
letterra/1.0.3/home.php
r350985 r354930 4 4 5 5 if (have_posts()): 6 $count = 0; 6 7 while (have_posts()):the_post(); 7 8 ?> 8 9 <article id="post-<?php the_ID(); ?>" <?php post_class('group post-shadow'); ?>> 9 <div class=" ">10 <div class="flex flex-wrap"> 10 11 <?php 11 12 // Call the content post image template area … … 13 14 ?> 14 15 <!-- Content --> 15 <div class="p -6 relative">16 <div class="px-6 py-4 relative w-[calc(100%-288px)]"> 16 17 <?php 17 18 // Call the content post author meta template area … … 25 26 </article> 26 27 <?php 28 $count++; 27 29 endwhile; 28 30 else : -
letterra/1.0.3/inc/customizer/customizer-letterra-core-settings.php
r350985 r354930 2 2 /* 3 3 * --------------------------------------------------------- 4 * letterra Core Settings Section4 * Letterra Core Settings Section 5 5 * --------------------------------------------------------- 6 6 */ 7 7 $wp_customize->add_section('letterra_core_sidebar_settings', array('title' => __('letterra Sidebar Settings', 'letterra'), 'description' => __('Configure settings provided by the letterra theme.', 'letterra'), 'panel' => 'letterra_theme_settings', 'priority' => 30,)); 8 8 $wp_customize->add_setting('letterra_core_sidebar', array('default' => false, 'sanitize_callback' => 'rest_sanitize_boolean',)); 9 $wp_customize->add_control('letterra_core_sidebar', array('label' => __('Need Sidebar?', 'letterra'), 'description' => __('Do you need to show the sidebar?', 'letterra'), 'section' => 'letterra_core_sidebar_settings', 'type' => 'checkbox',));10 9 11 $wp_customize->add_setting('letterra_core_map_image', array('default' => 0, 'sanitize_callback' => 'absint',)); 12 $wp_customize->add_control(new WP_Customize_Media_Control( 13 $wp_customize, 14 'letterra_core_map_image', 15 array( 16 'label' => __('Map Image', 'letterra'), 17 'description' => __('Upload an image to use as your map.', 'letterra'), 18 'mime_type' => 'image', 19 'section' => 'letterra_core_sidebar_settings', 20 ) 10 $wp_customize->add_setting('letterra_core_about_title', array( 11 'default' => '', 12 'sanitize_callback' => 'sanitize_text_field', 21 13 )); 14 $wp_customize->add_control('letterra_core_about_title', array( 15 'label' => __('About Title', 'letterra'), 16 'section' => 'letterra_core_sidebar_settings', 17 'type' => 'text', 18 )); 19 22 20 $wp_customize->add_setting('letterra_core_about_content', array('default' => '', 'sanitize_callback' => 'sanitize_textarea_field',)); 23 21 $wp_customize->add_control('letterra_core_about_content', array('label' => __('About Content', 'letterra'), 'description' => __('Enter the content you want to display in the sidebar.', 'letterra'), 'section' => 'letterra_core_sidebar_settings', 'type' => 'textarea')); 22 24 23 25 24 $wp_customize->add_setting('letterra_all_categories_page', array('default' => 0, 'sanitize_callback' => 'absint',)); -
letterra/1.0.3/inc/footer-social-icons.php
r350985 r354930 33 33 'youtube' => 'fa-brands fa-youtube', 34 34 'pinterest' => 'fa-brands fa-pinterest-p', 35 'tiktok' => 'fa-brands fa-tiktok',36 35 'github' => 'fa-brands fa-github', 37 'gitlab' => 'fa-brands fa-gitlab',38 'reddit' => 'fa-brands fa-reddit-alien',39 'discord' => 'fa-brands fa-discord',40 'twitch' => 'fa-brands fa-twitch',41 36 'telegram' => 'fa-brands fa-telegram', 42 37 'whatsapp' => 'fa-brands fa-whatsapp', 43 38 'snapchat' => 'fa-brands fa-snapchat', 44 'spotify' => 'fa-brands fa-spotify',45 'medium' => 'fa-brands fa-medium',46 'behance' => 'fa-brands fa-behance',47 'dribbble' => 'fa-brands fa-dribbble',48 'vimeo' => 'fa-brands fa-vimeo-v',49 'tumblr' => 'fa-brands fa-tumblr',50 'flickr' => 'fa-brands fa-flickr',51 'quora' => 'fa-brands fa-quora',52 'stackoverflow' => 'fa-brands fa-stack-overflow',53 'xing' => 'fa-brands fa-xing',54 'yelp' => 'fa-brands fa-yelp',55 'vk' => 'fa-brands fa-vk',56 'weibo' => 'fa-brands fa-weibo',57 'rss' => 'fa-solid fa-rss',58 39 ); 59 40 $icon_class = isset($icons[$name]) ? $icons[$name] : 'fa-solid fa-link'; -
letterra/1.0.3/inc/sidebar-about.php
r350985 r354930 7 7 * Optional. Arguments to customize the About section. 8 8 * 9 * @type bool $show_logo Show site logo. Default true.10 9 * @type bool $show_title Show site title. Default true. 11 10 * @type bool $show_desc Show about description. Default true. 12 * @type bool $show_map Show map image. Default true.13 11 * @type string $title Custom title. Default empty. 14 12 * @type int $desc_limit Limit description words. 0 = unlimited. … … 29 27 // Default arguments. 30 28 $defaults = array( 31 'show_logo' => true,32 29 'show_title' => true, 33 30 'show_desc' => true, 34 'show_map' => true,35 31 'title' => '', 36 32 'desc_limit' => 0, … … 46 42 47 43 // Convert boolean arguments. 48 $show_logo = (bool) $args['show_logo'];49 44 $show_title = (bool) $args['show_title']; 50 45 $show_desc = (bool) $args['show_desc']; 51 $show_map = (bool) $args['show_map'];52 53 // Get theme settings.54 $custom_logo_id = get_theme_mod('custom_logo', 0);55 $map_image_id = get_theme_mod('letterra_core_map_image', 0);56 46 57 47 // Site title. … … 59 49 60 50 // Determine what should be displayed. 61 $has_logo = $show_logo && $custom_logo_id;62 51 $has_title = $show_title && ! empty($site_title); 63 52 $has_description = $show_desc && ! empty($about); 64 $has_map = $show_map && ($map_image_id > 0);65 53 66 54 // Nothing to display. 67 if (! $has_ logo && ! $has_title && ! $has_description && ! $has_map) {55 if (! $has_title && ! $has_description) { 68 56 return ''; 69 57 } 70 58 71 59 $output = ''; 72 $output .= '<div class="sidebar-about-wrapper sidebar-wrapper !bg-white' . esc_attr($custom_class) . '">'; 73 $output .= '<div class="relative overflow-hidden min-h-36">'; 74 75 /* Show map */ 76 if ($has_map) { 77 $output .= wp_get_attachment_image($map_image_id, 'full', false, array('class' => 'sidebar-about-map', 'alt' => esc_attr__('Map', 'letterra'), 'fetchpriority' => 'high', 'loading' => 'eager')); 78 } 79 $output .= '<div class="sidebar_about_logo">'; 60 $output .= '<div class="sidebar-about-wrapper sidebar-wrapper text-center ' . esc_attr($custom_class) . '">'; 61 $output .= '<div class="relative overflow-hidden pt-0 pb-5">'; 80 62 81 63 /* Show logo. If logo does not exist, show title instead */ 82 if ($has_logo) { 83 $logo = wp_get_attachment_image(absint($custom_logo_id), 'letterra-logo-size', false, array('class' => 'w-auto object-contain h-8')); 84 if ($logo) { 85 $output .= $logo; 86 } elseif ($has_title) { 87 $output .= '<h3 class="sidebar-title about-title">' . esc_html($site_title) . '</h3>'; 88 } 89 } elseif ($has_title) { 64 if ($has_title) { 90 65 $output .= '<h3 class="sidebar-title about-title">' . esc_html($site_title) . '</h3>'; 91 66 } 92 67 68 $about_title = get_theme_mod( 'letterra_core_about_title', '' ); 69 if ( $about_title ) { 70 $output .= "<h1 class='text-3xl font-bold text-grey mb-2 mt-1'>". esc_html( $about_title ) ."</h1>"; 71 } 72 93 73 /* Show description */ 94 74 if ($has_description) { … … 105 85 $output .= '</div>'; 106 86 $output .= '</div>'; 107 $output .= '</div>';108 87 109 88 return $output; -
letterra/1.0.3/inc/sidebar-all-categories.php
r350985 r354930 16 16 $defaults = array( 17 17 'title' => '', 18 'show_count' => true,19 18 'class' => '', 20 19 'limit' => 5, … … 111 110 } 112 111 elseif ($author_id) { 113 $title = __('Author Categories', 'letterra');112 $title = __('Author By Categories', 'letterra'); 114 113 } 115 114 else { 116 $title = __('Explore Categories', 'letterra');115 $title = __('Explore By Categories', 'letterra'); 117 116 } 118 117 … … 134 133 ?> 135 134 136 <div class="sidebar-categories-wrapper sidebar-wrapper !bg-white <?phpecho esc_attr($args['class']); ?>">135 <div class="sidebar-categories-wrapper sidebar-wrapper !bg-white pb-10 <?php if ( is_page_template()) {echo '';} else {echo 'max-w-xl mx-auto';} echo esc_attr($args['class']); ?>"> 137 136 <?php if ($all_categories_page && is_page($all_categories_page)): ?> 138 137 <div class="category-title-wrapper"> … … 144 143 <?php endif; ?> 145 144 146 <div class="sidebar-title-border">147 <svg width="33" height="6" xmlns="http://www.w3.org/2000/svg">148 <defs>149 <?php $gradient_id = wp_unique_id('letterra-category-gradient-'); ?>150 <linearGradient id="<?php echo esc_attr($gradient_id); ?>" x1="0%" y1="0%" x2="100%" y2="0%">151 <stop offset="0%" stop-color="#203656"></stop>152 <stop offset="100%" stop-color="#FFA387"></stop>153 </linearGradient>154 </defs>155 <path d="M33 1c-3.3 0-3.3 4-6.598 4C23.1 5 23.1 1 19.8 1c-3.3 0-3.3 4-6.599 4-3.3 0-3.3-4-6.6-4S3.303 5 0 5" stroke="url(#<?php echo esc_attr($gradient_id); ?>)" stroke-width="2" fill="none"></path>156 </svg>157 </div>158 159 145 <ul class="category-wrapper"> 160 146 <?php 161 147 $i = 0; 162 $show_count = (bool) $args['show_count'];163 148 164 149 foreach ($categories as $category) : … … 179 164 180 165 /* Category count */ 181 $count = ($author_id && isset($category_count[$category->term_id])) ? $category_count[$category->term_id] : $category->count;182 166 ?> 183 167 <li class="topics-wrapper <?php echo esc_attr($active_class); ?>"> 184 168 <a href="<?php echo esc_url($url); ?>" class="topics"> 185 <i class="fa-solid fa-chevron-right topics-icon" aria-hidden="true"></i>186 169 <?php echo esc_html($category->name); ?> 187 170 </a> 188 189 <?php if ($show_count) : ?>190 <span class="topics-count">(<?php echo absint($count); ?>)</span>191 <?php endif; ?>192 171 </li> 193 172 <?php -
letterra/1.0.3/inc/sidebar-all-tags.php
r350985 r354930 212 212 $title = $args['title']; 213 213 } elseif ($author_id) { 214 $title = __('Author Tags', 'letterra');214 $title = __('Author By Tags', 'letterra'); 215 215 } else { 216 $title = __('Explore Tags', 'letterra');216 $title = __('Explore By Tags', 'letterra'); 217 217 } 218 218 … … 261 261 <?php endif; ?> 262 262 263 <div class="sidebar-title-border">264 265 <svg266 width="33"267 height="6"268 xmlns="http://www.w3.org/2000/svg">269 270 <defs>271 <?php $gradient_id = wp_unique_id('letterra-tag-gradient-'); ?>272 <linearGradient273 id="<?php echo esc_attr($gradient_id); ?>"274 x1="0%"275 y1="0%"276 x2="100%"277 y2="0%">278 279 <stop280 offset="0%"281 stop-color="#203656"></stop>282 283 <stop284 offset="100%"285 stop-color="#FFA387"></stop>286 287 </linearGradient>288 289 </defs>290 291 <path292 d="M33 1c-3.3 0-3.3 4-6.598 4C23.1 5 23.1 1 19.8 1c-3.3 0-3.3 4-6.599 4-3.3 0-3.3-4-6.6-4S3.303 5 0 5"293 stroke="url(#<?php echo esc_attr($gradient_id); ?>)"294 stroke-width="2"295 fill="none"></path>296 297 </svg>298 299 </div>300 263 301 264 <ul class="tags-wrapper"> … … 327 290 $count = ($author_id && isset($tag_count[$tag->term_id])) ? $tag_count[$tag->term_id] : $tag->count; 328 291 ?> 329 <li class=" <?php echo esc_attr($active_class); ?>">330 <a href="<?php echo esc_url($url); ?>" class="t ags">292 <li class="topics-wrapper<?php echo esc_attr($active_class); ?>"> 293 <a href="<?php echo esc_url($url); ?>" class="topics"> 331 294 <?php echo esc_html($args['prefix'] . $tag->name); ?> 332 295 <?php if ($show_count) : ?> -
letterra/1.0.3/package.json
r350985 r354930 8 8 9 9 "build:main-js": "terser ./assets/js/main.js -o ./assets/js/main.min.js --compress --mangle", 10 "build:single-js": "terser ./assets/js/single.js -o ./assets/js/single.min.js --compress --mangle",11 10 "build:customizer-js": "terser ./assets/js/customizer-social-repeater.js -o ./assets/js/customizer-social-repeater.min.js --compress --mangle", 12 11 … … 14 13 "build:customizer-css": "cleancss -o ./assets/css/customizer-social-repeater.min.css ./assets/css/customizer-social-repeater.css", 15 14 16 "build": "npm run build:main-js && npm run build: single-js && npm run build:customizer-js && npm run build:style-css && npm run build:customizer-css",15 "build": "npm run build:main-js && npm run build:customizer-js && npm run build:style-css && npm run build:customizer-css", 17 16 18 17 "watch:js": "concurrently \"chokidar ./assets/js/main.js -c 'npm run build:main-js'\" \"chokidar ./assets/js/single.js -c 'npm run build:single-js'\" \"chokidar ./assets/js/customizer-social-repeater.js -c 'npm run build:customizer-js'\"", -
letterra/1.0.3/readme.txt
r350985 r354930 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html 9 9 Text Domain: letterra 10 Tags: blog, custom-logo, custom-background, custom-header, flexible-header, custom-menu, editor-style, featured-images, theme-options, translation-ready, threaded-comments, right-sidebar, one-column, two-columns, grid-layout, full-width-template10 Tags: blog, custom-logo, custom-background, custom-header, flexible-header, custom-menu, editor-style, featured-images, theme-options, translation-ready, threaded-comments, one-column, grid-layout, full-width-template 11 11 12 A clean, responsive classic blog theme with media-rich posts, author archives, popular posts and social sharing.12 A clean, responsive classic blog theme with author archives and social sharing. 13 13 14 14 == Description == 15 15 letterra is a clean and responsive classic WordPress theme built for writers, editors and small publications. 16 16 It focuses on readable typography, a fast front end and a straightforward editorial layout that works on every screen size. 17 Posts can be presented as image, gallery, video or audio entries, so a single blog can mix long reads with podcasts, screencasts and photo sets.18 17 Templates are included for the blog home, single posts, pages, category, tag, author and search archives, plus a 404 template that offers a search form instead of a dead end. 19 18 Everything is configured through the WordPress Customizer, so there is no separate options framework and no page builder to learn. … … 21 20 = Features = 22 21 * Clean, minimal, mobile-first blog design built with Tailwind CSS 23 * Media-aware posts: featured image, gallery slider, self-hosted or embedded video, and audio 24 * Author archive with the author's bio, avatar and social profiles 22 * Author archive with the author's bio and avatar 25 23 * Category, tag and author-scoped filtering of post listings, using the `author_cat` and `author_tag` query arguments on author archives 26 * Popular posts ordered by a view count stored in post meta on your own site27 24 * Threaded comments with a custom comment layout 28 25 * Paginated post listings with styled page numbers … … 30 27 * 404 template with a search form 31 28 * Social follow icons in the footer, with Font Awesome icons mapped for around thirty platforms and a generic link icon as a fallback 32 * Social sharing icons on single posts33 29 * Open Graph and Twitter Card tags on single views, automatically skipped when Yoast SEO, Rank Math or All in One SEO is active 34 30 * Two custom page templates, Categories and Tags, for site-wide term listings 35 * Four bundled widgets: About, Popular Posts, Categories and Tags36 * Optional Main Sidebar widget area with Customizer selective refresh37 31 * Editor styles so the block editor reflects the front end 38 32 * Back-to-top button and smooth scrolling … … 40 34 * Translation ready, using the `letterra` text domain 41 35 * All fonts, icons and scripts served from the theme folder 42 * Deferred non-critical JavaScript (main script, single-post script, Swiper slider)for faster initial page rendering36 * Deferred non-critical JavaScript for faster initial page rendering 43 37 * Preloaded custom web fonts to reduce render-blocking font requests 44 38 … … 51 45 52 46 = Theme support = 53 `automatic-feed-links`, `title-tag`, `custom-logo`, `custom-header`, `custom-background`, `post-thumbnails`, `html5` (search form, comment form, comment list, gallery, caption, style, script) , `editor-styles` and `customize-selective-refresh-widgets`.54 One menu location is registered, Primary Menu, and it falls back to `wp_page_menu()` when no menu is assigned. One widget area is registered, Main Sidebar (`sidebar-1`).Two image sizes are added: `letterra-logo-size` at 150x36 and `letterra-blog` at 700x300.47 `automatic-feed-links`, `title-tag`, `custom-logo`, `custom-header`, `custom-background`, `post-thumbnails`, `html5` (search form, comment form, comment list, gallery, caption, style, script) and `editor-styles`. 48 One menu location is registered, Primary Menu, and it falls back to `wp_page_menu()` when no menu is assigned. Two image sizes are added: `letterra-logo-size` at 150x36 and `letterra-blog` at 700x300. 55 49 56 50 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- … … 60 54 * letterra Footer Settings — footer copyright text, which supports the `{year}` and `{site_name}` placeholders 61 55 * letterra Social Settings — a toggle to show footer social icons, and a repeater for up to five platform names and profile URLs 62 * letterra Sidebar Settings — a toggle for the sidebar, an About image, About text, and the pages used for the All Categories and All Tags listings63 56 64 The standard Site Identity, Header Image, Background , Menus and Widgets sections are also available.57 The standard Site Identity, Header Image, Background and Menus sections are also available. 65 58 66 59 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 67 60 68 = Recommended plugin = 69 letterra Core is a companion plugin that adds a Post Details meta box (media type, post image, video URL, audio file and gallery images), author social profile fields on the user screen, 70 post sharing icons, Open Graph output and an option to disable the block editor. The theme is fully functional without it, but the media post presentations, author social icons and sharing icons will not appear. 71 A dismissible admin notice points to the plugin. Child themes and custom templates can use `letterra_get_excerpt_by_chars( $limit )`, `letterra_get_author_name( $author_id )`, `letterra_post_categories( $post_id )`, 72 `letterra_post_tags( $post_id )`, `letterra_get_media_icon( $post_id )`, `letterra_theme_get_the_logo()`, `letterra_social_icons()`, `letterra_render_about_sidebar( $args )` and `letterra_has_sidebar()`. 61 = Helper functions = 62 The theme is fully self-contained and does not require any plugin. Child themes and custom templates can use `letterra_get_excerpt_by_chars( $limit )`, `letterra_get_author_name( $author_id )`, `letterra_post_categories( $post_id )`, `letterra_post_tags( $post_id )`, `letterra_theme_get_the_logo()` and `letterra_social_icons()`. 73 63 74 64 = Build tooling = … … 86 76 1. In the WordPress admin go to Appearance > Themes > Add New > Upload Theme, choose the theme zip file and click Install Now. Alternatively, upload the unzipped `letterra` folder to `/wp-content/themes/`. 87 77 2. Click Activate. 88 3. Optionally install and activate the letterra Core plugin to enable the media post presentations, author social fields and sharing icons. 89 4. Go to Appearance > Customize to set your logo, header image, background, footer copyright, social links and sidebar options. 90 5. Go to Appearance > Menus and assign a menu to the Primary Menu location. 91 6. Go to Appearance > Widgets to populate the Main Sidebar, if you enabled it. 92 7. Optionally create two pages and assign them the Categories and Tags page templates, then select those pages in letterra Sidebar Settings. 78 3. Go to Appearance > Customize to set your logo, header image, background, footer copyright and social links. 79 4. Go to Appearance > Menus and assign a menu to the Primary Menu location. 80 5. Optionally create two pages and assign them the Categories and Tags page templates for site-wide category and tag listings. 93 81 94 82 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 95 83 96 84 == Frequently Asked Questions == 97 = Is the letterra Core plugin required? =98 No. The theme works on its own . letterra Core is recommended because it supplies the post media fields, author social profiles and sharing icons that some templates render.85 = Does the theme require any plugin? = 86 No. The theme works on its own and does not depend on any plugin. 99 87 100 88 = Where are the theme options? = 101 89 All options live in the WordPress Customizer, under Appearance > Customize in the Letterra Theme Settings panel. The theme does not add a separate settings page. 102 103 = How do I add a video, audio or gallery post? =104 Install the letterra Core plugin, then pick a media type in the Post Details box on the post editor screen and fill in the matching field. Gallery posts with more than one image are shown in a Swiper slider, and the slider assets are only loaded on those posts.105 106 = How are popular posts calculated? =107 The theme increments a `letterra_post_views_count` value in post meta each time a single post is viewed, and the Popular Posts widget orders posts by that count. Nothing is sent to any external service.108 109 = How do I show the sidebar? =110 Enable "Need Sidebar?" in Appearance > Customize > Letterra Theme Settings > letterra Sidebar Settings, then add widgets to the Main Sidebar area.111 90 112 91 = How many footer social icons can I add? = … … 145 124 Files: assets/css/fontawesome/, assets/css/webfonts/ 146 125 147 Swiper 14.1.0148 Copyright: 2014-2026 Vladimir Kharlampidi149 Source: https://swiperjs.com/150 License: MIT (https://opensource.org/licenses/MIT)151 License file: assets/licenses/swiper/LICENSE152 Files: assets/css/swiper/, assets/js/swiper/153 154 126 Poppins 155 127 Copyright: 2020 The Poppins Project Authors (https://github.com/itfoundry/Poppins) … … 165 137 Tailwind is a build-time dependency only; no Tailwind source files are shipped with the theme. 166 138 167 All images bundled with the theme, including `assets/images/map.png` andthe images composed into the theme screenshot, were created by the theme author, are Copyright (C) 2026 digital4design,139 All images bundled with the theme, including the images composed into the theme screenshot, were created by the theme author, are Copyright (C) 2026 digital4design, 168 140 and are licensed under the GNU General Public License v2 or later. 169 141 … … 172 144 == Privacy == 173 145 letterra does not collect, store or transmit personal data about site visitors, and the theme makes no requests to external services. All fonts, icons, styles and scripts are served from the theme folder. 174 Theme settings and content entered by the site administrator are stored in the site's own WordPress database. The post-view counter used by the Popular Posts widget is stored in post meta on the same site and is never sent anywhere else.175 The footer and author social icons, and the post sharing icons,are plain links. They load no third-party scripts and no tracking pixels, and they send no data until a visitor chooses to click one.176 If an administrator installs additional plugins, analytics, advertising or social integrations, those services may collect data under their own privacy policies, which is outside the control of this theme s.146 Theme settings and content entered by the site administrator are stored in the site's own WordPress database. 147 The footer social icons are plain links. They load no third-party scripts and no tracking pixels, and they send no data until a visitor chooses to click one. 148 If an administrator installs additional plugins, analytics, advertising or social integrations, those services may collect data under their own privacy policies, which is outside the control of this theme. -
letterra/1.0.3/search.php
r350985 r354930 7 7 ?> 8 8 <article id="post-<?php the_ID(); ?>" <?php post_class('group post-shadow'); ?>> 9 <div class="">9 <div class="flex flex-wrap"> 10 10 <?php 11 11 // Call the content post image template area … … 14 14 15 15 <!-- Content --> 16 <div class="p-6 relative">16 <div class="px-6 py-4 relative w-[calc(100%-288px)]"> 17 17 <?php 18 18 // Call the content post author meta template area -
letterra/1.0.3/searchform.php
r350985 r354930 1 <form role="search" method="get" action="<?php echo esc_url(home_url('/')); ?>" class="search-form ">1 <form role="search" method="get" action="<?php echo esc_url(home_url('/')); ?>" class="search-form mx-auto max-w-md mb-6"> 2 2 <label for="search-field" class="screen-reader-text"><?php esc_html_e( 'Search', 'letterra' ); ?></label> 3 3 <input type="search" id="search-field" name="s" placeholder="<?php esc_attr_e( 'Search...', 'letterra' ); ?>" value="<?php echo esc_attr(get_search_query()); ?>"> -
letterra/1.0.3/single.php
r350985 r354930 8 8 <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 9 9 <div class="bg-white"> 10 11 <!-- Post Image --> 12 <?php get_template_part('template-parts/content', 'get-post-media'); ?> 13 14 <!-- Post Title --> 15 <h1 class="single-post-title"><?php the_title(); ?></h1> 10 16 11 17 <?php get_template_part('template-parts/content', 'breadcrumbs'); ?> 12 18 13 <!-- Post Title -->14 <h1 class="single-post-title"><?php the_title(); ?></h1>15 19 16 20 <?php get_template_part('template-parts/content', 'post-author-meta'); ?> 17 21 18 <!-- Post Image -->19 20 <?php get_template_part('template-parts/content', 'get-post-media'); ?>21 22 22 23 -
letterra/1.0.3/style.css
r351514 r354930 1 1 /* 2 Theme Name: Letterra2 Theme Name: letterra 3 3 Author: digital4design 4 4 Author URI: https://profiles.wordpress.org/digital4design/ 5 Description: A clean , responsive, and versatile WordPress theme with a classic design, perfect for creating elegant and professional websites.6 Version: 1.0. 25 Description: A clean and responsive classic WordPress theme. 6 Version: 1.0.3 7 7 Requires at least: 6.0 8 8 Tested up to: 7.1 … … 87 87 } 88 88 89 /* Gallery caption */90 .gallery-caption {91 font-size: 0.85rem;92 color: #666;93 text-align: center;94 margin-top: 0.5em;95 }96 97 89 /* Screen reader text */ 98 90 .screen-reader-text { -
letterra/1.0.3/tag.php
r350985 r354930 6 6 ?> 7 7 <article id="post-<?php the_ID(); ?>" <?php post_class('group post-shadow'); ?>> 8 <div class="">8 <div class="flex flex-wrap"> 9 9 <?php 10 10 // Call the content post image template area … … 12 12 ?> 13 13 <!-- Content --> 14 <div class="p-6 relative">14 <div class="px-6 py-4 relative w-[calc(100%-288px)]"> 15 15 <?php 16 16 // Call the content post author meta template area -
letterra/1.0.3/template-parts/content-author-archive.php
r350985 r354930 1 1 <?php 2 $author_id = $args['author_id'] ?? false;3 2 $current_tag = $args['current_tag'] ?? false; 4 3 $current_cat = $args['current_cat'] ?? false; … … 6 5 if (!empty($current_cat) || !empty($current_tag)) { 7 6 ?> 8 <div class="custom-container archive-main-wrap"> 9 <h2 class="archive-wrapper archive-wrapper-wtih-filter"> 10 <span class="flex flex-wrap gap-2 items-center"> 7 <span class="flex flex-wrap gap-2 items-center justify-center pb-5 text-gray-500"> 11 8 <?php 12 9 if (!empty($current_cat)) { 13 echo '<span >' . esc_html__('Categories:', 'letterra') . '</span>';14 echo '<span class="t ags">' . esc_html(ucfirst($current_cat)) . '</span>';10 echo '<span class="font-medium">' . esc_html__('Selected Category:', 'letterra') . '</span>'; 11 echo '<span class="text-pink">' . esc_html(ucfirst($current_cat)) . '</span>'; 15 12 } 16 13 17 14 if (!empty($current_tag)) { 18 echo '<span >' . esc_html__('Tags:', 'letterra') . '</span>';19 echo '<span class="t ags">#' . esc_html($current_tag) . '</span>';15 echo '<span class="font-medium">' . esc_html__('Tags:', 'letterra') . '</span>'; 16 echo '<span class="text-pink">#' . esc_html($current_tag) . '</span>'; 20 17 } 21 18 ?> 22 19 </span> 23 <?php24 $reset_url = get_author_posts_url($author_id);25 echo '<a href="' . esc_url($reset_url) . '" class="clear-all">' . esc_html__('Clear All', 'letterra') . ' <i class="fa-solid fa-x text-[10px]" aria-hidden="true"></i></a>';26 ?>27 </h2>28 </div>29 20 <?php 30 21 } -
letterra/1.0.3/template-parts/content-author-info.php
r350985 r354930 1 1 <?php 2 2 $has_sidebar = letterra_has_sidebar(); 3 if(!is_single()):4 3 ?> 5 <div class="custom-container archive-main-wrap"> 6 <?php endif; ?> 7 <div class="author-details-wrapper group <?php if(!function_exists('letterra_core_post_sharing_icons') && !is_author() ) : echo 'mb-10'; else: echo 'my-0'; endif; ?>"> 4 <div class="author-details-wrapper group <?php if(is_single()){echo 'bg-author !text-start !flex-row !gap-4 !p-6 !rounded';} ?> <?php if(!function_exists('letterra_core_post_sharing_icons') && !is_author() ) : echo 'mb-10'; else: echo 'my-0'; endif; ?>"> 8 5 9 6 <!-- Author Image --> 10 7 <?php $author_id = get_the_author_meta('ID'); ?> 8 <?php if(is_single()){ ?> 11 9 <div class="shrink-0"> 12 <a href="<?php echo esc_url(get_author_posts_url($author_id)); ?>" class="author-image-link " aria-label="<?php echo esc_attr(sprintf(__('View all posts by %s', 'letterra'), get_the_author())); ?>">10 <a href="<?php echo esc_url(get_author_posts_url($author_id)); ?>" class="author-image-link <?php if(is_single()){echo '!size-24'; }?>" aria-label="<?php echo esc_attr(sprintf(__('View all posts by %s', 'letterra'), get_the_author())); ?>"> 13 11 <?php echo get_avatar($author_id, 100, '', '', ['class' => 'image-scale']); ?> 14 12 </a> 15 13 </div> 14 <?php } ?> 16 15 17 16 <!-- Author Info --> 18 17 <div> 19 <h4 class="author-info"> 18 <?php if(!is_single()){ ?> 19 <h3 class="sidebar-title about-title"><?php esc_html_e('Author:', 'letterra'); ?></h3> 20 <?php } ?> 21 <h1 class="<?php if(is_single()){ echo 'text-xl';} else {echo 'text-3xl';}?> font-bold text-grey mb-2 mt-1"> 20 22 <?php 21 $author_id = get_the_author_meta('ID');23 // $author_id = get_the_author_meta('ID'); 22 24 $author_name = letterra_get_author_name($author_id); 23 25 if (!$author_name) { 24 26 $author_name = get_the_author(); 25 }27 } 26 28 ?> 27 <a href="<?php echo esc_url(get_author_posts_url($author_id)); ?>" 28 class="author-text-link"> 29 <a href="<?php echo esc_url(get_author_posts_url($author_id)); ?>" class="author-text-link"> 29 30 <?php echo esc_html($author_name); ?> 30 31 </a> 31 </h 4>32 </h1> 32 33 33 34 <!-- Author Biography --> 34 <p class=" author-bio">35 <p class="sidebar-about-content pb-5"> 35 36 <?php 36 37 $author_bio = get_the_author_meta('description'); … … 49 50 endif; 50 51 ?> 51 <?php52 if (!$has_sidebar) {53 letterra_view_author_tags_links($author_id);54 }55 ?>56 52 </div> 57 53 58 54 </div> 59 <?php if(!is_single()): ?>60 </div>61 <?php endif; ?> -
letterra/1.0.3/template-parts/content-get-post-media.php
r350985 r354930 1 1 <?php 2 $has_media = false; 3 $media_type = get_post_meta(get_the_ID(), 'letterra_core_media_type', true); 4 if (! in_array($media_type, ['image', 'video', 'audio', 'gallery'], true)) { 5 $media_type = 'none'; 6 } 7 8 if ($media_type === 'image') { 9 $image_id = get_post_meta(get_the_ID(), 'letterra_core_post_image', true); 10 if ($image_id) { 11 echo '<div class="single-post-image-wrapper post-media">'; 12 $image_html = wp_get_attachment_image(absint($image_id), 'letterra-blog', false, array('class' => 'w-full h-auto', 'alt' => get_the_title(),)); 13 if ($image_html) { 14 echo $image_html; 15 $has_media = true; 16 } 17 echo '</div>'; 18 } 19 } 20 elseif ($media_type === 'video') { 21 $video_url = get_post_meta(get_the_ID(), 'letterra_core_video_url', true); 22 if ($video_url) { 23 $video_html = wp_oembed_get( 24 esc_url($video_url) 25 ); 26 if ($video_html) { 27 echo '<div class="single-post-video-wrapper">'; 28 echo '<div class="post-media">' . $video_html . '</div>'; 29 echo '</div>'; 30 $has_media = true; 31 } 32 } 33 } 34 elseif ($media_type === 'audio') { 35 $audio_id = get_post_meta(get_the_ID(), 'letterra_core_audio', true); 36 if ($audio_id) { 37 $audio_url = wp_get_attachment_url(absint($audio_id)); 38 if ($audio_url) { 39 echo '<div class="post-media">'; 40 echo '<audio controls><source src="'. esc_url($audio_url) .'" type="audio/mpeg"></audio>'; 41 echo '</div>'; 42 $has_media = true; 43 } 44 } 45 } 46 elseif ($media_type === 'gallery') { 47 $gallery_images = get_post_meta(get_the_ID(), 'letterra_core_gallery_images', true); 48 if (! empty($gallery_images) && is_array($gallery_images)) { 49 echo '<div class="single-post-image-wrapper post-media"> 50 <div class="swiper post-slider"> 51 <div class="swiper-wrapper">'; 52 foreach ($gallery_images as $image_id) { 53 echo '<div class="swiper-slide">' . wp_get_attachment_image(absint($image_id), 'letterra-blog', false, array('class' => 'w-44 h-auto', 'alt' => get_the_title())) . '</div>'; 54 } 55 echo '</div>'; 56 echo '<div class="swiper-button-next"></div>'; 57 echo '<div class="swiper-button-prev"></div>'; 58 59 echo '<div class="swiper-pagination"></div>'; 60 echo '</div>'; 61 echo '</div>'; 62 $has_media = true; 63 } 64 } 65 66 // 👉 DEFAULT: If nothing selected → show featured image 67 if (!$has_media && has_post_thumbnail(get_the_ID())) { 2 if (has_post_thumbnail(get_the_ID())) { 68 3 echo '<div class="single-post-image-wrapper post-media">' . get_the_post_thumbnail(get_the_ID(), 'letterra-blog', array('class' => '', 'alt' => get_the_title())) . '</div>'; 69 4 } -
letterra/1.0.3/template-parts/content-post-author-meta.php
r350985 r354930 4 4 <a href="<?php echo esc_url(get_author_posts_url(get_the_author_meta('ID'))); ?>" 5 5 aria-label="<?php echo esc_attr(sprintf(__('View all posts by %s', 'letterra'), get_the_author())); ?>"> 6 <?php echo get_avatar(get_the_author_meta('ID'), 40, '', get_the_author(), [6 <?php echo get_avatar(get_the_author_meta('ID'), 30, '', get_the_author(), [ 7 7 'loading' => 'lazy', 8 8 'class' => 'rounded-full' -
letterra/1.0.3/template-parts/content-post-image.php
r350985 r354930 4 4 $above_fold_count = 6; 5 5 ?> 6 <div class="<?php echo esc_attr( is_author() || is_single() ? 'author-post-image' :'main-post-image-wrapper'); ?>">6 <div class="<?php echo esc_attr('main-post-image-wrapper'); ?>"> 7 7 <?php if (has_post_thumbnail()) : ?> 8 8 <a href="<?php echo get_the_permalink(); ?>"> … … 18 18 </a> 19 19 <?php endif; ?> 20 <!-- Floating Icon -->21 <div class="floating-icon floating-icon-bottom">22 <?php echo wp_kses_post(letterra_get_media_icon(get_the_ID())); ?>23 </div>24 20 </div> -
letterra/1.0.3/template-parts/content-post.php
r350985 r354930 1 <!-- Title -->2 1 <h2 class="post-title"> 3 2 <a href="<?php the_permalink(); ?>"><?php echo esc_html(get_the_title()); ?></a> 4 3 </h2> 5 <?php get_template_part('template-parts/content', 'get-post-categories'); ?> 6 <?php get_template_part('template-parts/content', 'get-post-tags'); ?> 7 4 <?php 5 if(!is_single()){ 6 get_template_part('template-parts/content', 'get-post-categories'); 7 } 8 ?> 8 9 9 10 <!-- Description --> -
letterra/1.0.3/template-parts/content-related-post.php
r350985 r354930 13 13 $query_args = array( 14 14 'post__not_in' => array($post_id), 15 'posts_per_page' => 2,15 'posts_per_page' => 3, 16 16 'ignore_sticky_posts' => 1, 17 17 'orderby' => 'date', … … 43 43 <div class="related-posts mb-10 border-b pb-10"> 44 44 <h3><?php esc_html_e('Related Posts', 'letterra'); ?></h3> 45 <div class="author-posts-wrapper ">45 <div class="author-posts-wrapper xl:!grid-cols-3"> 46 46 <?php while ($related_query->have_posts()) : $related_query->the_post(); ?> 47 <article id="post-<?php the_ID(); ?>" <?php post_class('group post-shadow border border-[#e5e7eb]'); ?>>48 <div class=" author-post-wrapper">47 <article id="post-<?php the_ID(); ?>" <?php post_class('group post-shadow'); ?>> 48 <div class="px-6 py-4 relative"> 49 49 <?php 50 // Call the content post image template area 51 get_template_part('template-parts/content', 'post-image'); 50 get_template_part('template-parts/content', 'post'); 52 51 ?> 53 <!-- Content -->54 <div class="author-post-content">55 <?php56 // Call the content post author meta template area57 get_template_part('template-parts/content', 'post-author-meta');58 59 // Call the content post template area60 get_template_part('template-parts/content', 'post');61 ?>62 </div>63 52 </div> 64 53 </article> -
letterra/1.0.3/template-parts/content-wrapper-end.php
r350985 r354930 43 43 <?php endif; ?> 44 44 </div> 45 46 <?php if ($has_sidebar && !$is_search && !is_page() && !is_page_template()) : ?>47 <aside class="sidebar-area">48 <?php get_sidebar(); ?>49 </aside>50 <?php endif; ?>51 45 </div> 52 46 </main> -
letterra/1.0.3/template-parts/content-wrapper-start.php
r350985 r354930 87 87 <?php } ?> 88 88 89 <?php90 if (is_author()):91 get_template_part('template-parts/content', 'author-info');92 get_template_part('template-parts/content', 'author-archive', array("author_id" => $author_id, "current_cat" => $current_cat, "current_tag" => $current_tag));93 endif;94 95 // Archive data for archive pages.96 if (is_category() || is_tag() || is_search()) {97 98 $is_category = is_category();99 $is_tag = is_tag();100 $is_search = is_search();101 102 if ($is_category) {103 $archive_label = __('Category:', 'letterra');104 $archive_title = single_cat_title('', false);105 $archive_description = category_description();106 } elseif ($is_tag) {107 $archive_label = __('Tag:', 'letterra');108 $archive_title = single_tag_title('', false);109 $archive_description = tag_description();110 } else {111 $archive_label = __('Search Results for:', 'letterra');112 $archive_title = get_search_query();113 $archive_description = '';114 $archive_description = '';115 }116 ?>117 <div class="custom-container archive-main-wrap">118 <div class="archive-wrapper">119 <h1>120 <span> <?php echo esc_html($archive_label); ?> </span>121 <span class="archive-selected-category"><?php echo esc_html($archive_title); ?> </span>122 </h1>123 <div>124 <?php125 if (!is_author()):126 echo letterra_view_all_taxonomy_links();127 endif;128 ?>129 </div>130 </div>131 132 <?php if ($archive_description) : ?>133 <div class="archive-description"><?php echo wp_kses_post($archive_description); ?> </div>134 <?php endif; ?>135 136 <?php if ($is_search) : ?> <p class="archive-description"> <?php esc_html_e('Browse relevant articles, insights, and resources related to your search.', 'letterra'); ?> </p> <?php endif; ?>137 </div>138 <?php } ?>139 140 89 <!-- Container Starts --> 141 90 <div class=" … … 143 92 <?php if ($is_search): echo 'py-10'; 144 93 endif; ?> 145 <?php echo esc_attr(($has_sidebar && !$is_search && !is_page_template() && !is_page()) ? 'with-sidebar two-columns' : ''); ?>94 <?php echo esc_attr(($has_sidebar && !$is_search && !is_page_template() && !is_page()) ? 'with-sidebar' : ''); ?> 146 95 <?php echo (!empty($current_cat) || !empty($current_tag)) ? '!pt-4' : 'py-10'; ?> 147 96 "> … … 150 99 <div class="<?php echo esc_attr(($has_sidebar && ! $is_search && !is_page_template() && !is_page()) ? 'content-area' : 'w-full'); ?>"> 151 100 <?php 101 if (!is_page_template() && !is_page() && !is_single()): 152 102 153 if (!is_page_template() && !is_page() && !is_single()): 103 if ( is_home() && get_queried_object_id() === (int) get_option( 'page_for_posts' ) ) { 104 echo letterra_render_about_sidebar(); 105 } 106 107 // Archive data for archive pages. 108 if (is_category() || is_tag() || is_search()) { 109 110 $is_category = is_category(); 111 $is_tag = is_tag(); 112 $is_search = is_search(); 113 114 if ($is_category) { 115 $archive_label = __('Category:', 'letterra'); 116 $archive_title = single_cat_title('', false); 117 $archive_description = category_description(); 118 } elseif ($is_tag) { 119 $archive_label = __('Tag:', 'letterra'); 120 $archive_title = single_tag_title('', false); 121 $archive_description = tag_description(); 122 } else { 123 $archive_label = __('Search Results for:', 'letterra'); 124 $archive_title = get_search_query(); 125 $archive_description = ''; 126 $archive_description = ''; 127 } 128 ?> 129 <div class="sidebar-about-wrapper sidebar-wrapper"> 130 <div class="relative overflow-hidden pt-0 pb-5 text-center"> 131 <h3 class="sidebar-title about-title"><?php echo esc_html($archive_label); ?></h3> 132 <h1 class="text-3xl font-bold text-grey mb-2 mt-1"><?php echo esc_html($archive_title); ?></h1> 133 <?php if ($archive_description) : ?> 134 <div class="sidebar-about-content"><?php echo wp_kses_post($archive_description); ?> </div> 135 <?php endif; ?> 136 <?php if ($is_search) : ?> <p class="text-gray-500 text-center"> <?php esc_html_e('Browse relevant articles, insights, and resources related to your search.', 'letterra'); ?> </p> <?php endif; ?> 137 </div> 138 <?php } 139 140 if (is_author()): 141 get_template_part('template-parts/content', 'author-info'); 142 get_template_part('template-parts/content', 'author-archive', array("author_id" => $author_id, "current_cat" => $current_cat, "current_tag" => $current_tag)); 143 endif; 144 145 echo letterra_render_categories( array( 'limit' => 10 ) ); 146 get_search_form(); 154 147 ?> 155 148 156 <!-- Wrapper Area Starts -->157 <div class="<?php echo esc_attr($post_wrapper_class); ?>">149 <!-- Wrapper Area Starts --> 150 <div class="<?php echo esc_attr($post_wrapper_class); ?>"> 158 151 <?php endif; -
letterra/1.0.3/templates/template-categories.php
r350985 r354930 12 12 13 13 <main id="primary" class="full-width-template"> 14 <div class="custom-container archive-main-wrap">14 <div class="custom-container"> 15 15 <?php 16 16 echo letterra_render_categories(
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)