اضافه کردن خودکار تصویر شاخص در متن نوشته WordPress
درج تصویر داخل نوشتههای وردپرس برای بهبود شکل ظاهری و همچنین بهبود وضعیت سئو سایت مفید است. گاهی ممکن است به دلیل تعداد زیاد نوشتهها، امکان ویرایش تک به تک آنها کاری مشکل و زمانبر باشد.
اگر به دنبال روشی هستید تا تصویر شاخص نوشتهها به صورت خودکار داخل متن درج گردد با استفاده از کد زیر که به صورت اختصاصی در روکا توسعه پیدا کرده است میتوانید به این هدف دست پیدا کنید.
در هنگام استفاده از کد زیر توجه به نکات زیر ضروری است:
- تصویر شاخص در کد زیر با اندازهی واقعی و به صورت وسطچین در نوشته درج میشود. اگر تصاویر شما دارای ابعاد بزرگ باشند، باید بخش مربوط به اندازهی تصویر را ویرایش کنید تا یکی از اندازههای کوچکتر داخل متن درج شود.
- اگر محتوای شما دارای تصویر درون خطی باشد، تصویر شاخص در محتوا درج نخواهد شد.
- در کدهای زیر ابتدا تلاش میشود تا نخستین عنوان h2 جستجو شود و تصویر پیش از آن قرار بگیرد.
- اگر محتوای شما فاقد عنوان h2 باشد، تلاش میشود تا تصویر پس از پاراگراف اول درج شود.
- اگر محتوای شما یک پاراگراف یا عنوان داشته باشد، تصویر در ابتدای نوشته درج خواهد شد.
- لازم به ذکر است که استفاده از این روش، مقداری بار اضافی برای پردازش محتوای شما ایجاد میکند و بهتر است از افزونههای Cache محتوا برای افزایش سرعت سایت استفاده نمایید.
راهنمای استفاده از کدها
برای استفاده از کدهای زیر، میبایست محتوای آن را داخل فایل functions.php قالب خود درج نمایید. استفاده از این کدها، هیچ گونه تغییری روی پایگاه دادهی شما ایجاد نمیکند. پس از فعالسازی این کدها، هر زمان که مایل باشید با حذف آنها وضعیت به صورت قبل بر میگردد.
کد درج خودکار تصویر شاخل داخل محتوای وردپرس
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
add_filter( 'the_content', 'roka_add_inline_image' ); function roka_add_inline_image( $content ) { if ( is_singular( array( 'post' ) ) ) { if ( in_the_loop() && is_main_query() && has_post_thumbnail() && false === strpos( $content, '<img' ) ) { $tag = '<h2'; $parts = explode( $tag, $content, 3 ); if( count( $parts ) == 1 ) { $tag = '<p'; $parts = explode( $tag, $content, 3 ); } $thumbnail = get_the_post_thumbnail( null, 'full', array( 'class' => 'aligncenter' ) ); if( $parts[ 0 ] == '' && count( $parts ) > 1 ) { $parts = array_slice( $parts, 1 ); $parts[ 0 ] = $tag . $parts[ 0 ]; } if( count( $parts ) > 1 ) { $content = $parts[ 0 ] . $thumbnail . $tag . implode( $tag, array_slice( $parts, 1 ) ); } else { $content = $thumbnail . $content; } } } return $content; } |