من الشائع جدًا على شبكة اﻹنترنت أن تظهر في أسفل المواقع حقوق النسخ CopyRight، لكن دائما هناك مشكلة، فأغلب المواقع تُظهرها مصحوبة فقط بالتاريخ الحالي، على سبيل المثال: كل الحقوق محفوظة © 2018.
هكذا نكون قد وضعنا حقوق النسخ فقط للمواضيع المنشورة في العام الحالي. وماذا عن المواضيع التي نشرت في أعوام سابقة، ليس لديك عليها حقوق؟
من المنطقي أن يتم إضافة حقوق النسخ كاملة منذ العام الذي تم فيه نشر أول تدوينة إلى التاريخ الحالي وذلك لضمان حقوق كل المواضيع المنشورة خلال هذه الفترة، شيء كهذا: كل الحقوق محفوظة | سعيد البقالي © 2012-2020.
للحصول على هذه النتيجة قمت بكتابة وظيفة تجلب السنة التي تم فيها نشر أول تدوينة من قاعدة البيانات ثم مقارنته مع السنة الحالية، في حالة التساوي، أي أن الموقع جديد ولم يمر على إنشاء أكثر من سنة، يتم عرض السن الحالية فقط، أما في حالة العكس فيتم عرض التاريخ منذ السنة التي تم فيها نشر أول تدوينة إلى السنة الحالية، شيء كهذا:
كل الحقوق محفوظة – [اسم الموقع] © [التاريخ]
قم بإضافة هذا الكود إلى ملف functions.php
للقالب المفعّل أو لإضافتك المخصصة.
/**
* Get footer credits text
*
* @param array $args
* @return string
*/
function sb_get_footer_credits_text( $args = array() ) {
global $wpdb;
$defaults = array(
'first_year' => get_transient( 'sb_get_first_year' ),
'current_year' => date( 'Y' ),
'symbol' => '©',
'text' => esc_html__( 'All right reserved', 'text-domain' ),
'site_name' => get_bloginfo( 'name' ),
'text_separator' => ' | ',
'years_separator' => '-',
);
extract( apply_filters( 'sb_footer_credits_args', wp_parse_args( (array) $args, $defaults ) ) );
if ( false === $first_year ) {
$sql = "SELECT YEAR(min(post_date_gmt))
AS first_year
FROM $wpdb->posts
WHERE post_status = 'publish'";
if ( false === $first_year ) {
$post_date_gmt = $wpdb->get_results( $sql ); // WPCS: cache ok. db call ok. unprepared SQL OK.
if ( is_array( $post_date_gmt ) ) {
set_transient( 'sb_get_first_year', $post_date_gmt[0]->first_year, MONTH_IN_SECONDS );
unset( $post_date_gmt );
}
}
}
$output = $text . $text_separator . $site_name . ' ' . $symbol . ' ';
if ( $current_year !== $first_year ) {
$years = $first_year . $years_separator . $current_year;
$output .= $years;
} else {
$output .= $current_year;
}
return apply_filters( 'sb_footer_credits_text', $output );
}
بعد حفظ التغييرات في ملف functions.php
عليك فتح ملف footer.php
ووضع الكود التالي في المكان المناسب.
<?php echo esc_html( sb_get_footer_credits_text() ); ?>
إذا أردت التغيير في القيم الافتراضية للوظيفة عن طريق تمرير مصفوفة لها بقيم مخصصة كالتالي:
$args = array(
'first_year' => '2012',
'current_year' => '2018',
'symbol' => '©',
'text' => 'كل الحقوق محفوطة',
'site_name' => 'إسم الموقع',
'text_separator' => ' | ',
'years_separator' => '-',
);
echo esc_html( sb_get_footer_credits_text( $args ) );
كذلك يمكنك تغيير القيم اﻹفتراضية للوظيفة عن طريق المرشح (filter) sb_footer_credits_args
وذلك على النحو التالي:
/**
Change copyrght args via filter
*
@param array $copyright
@return void
*/
function sb_change_footer_credits_args( $args ) {
$args['first_year'] = '1820';
$args['text'] = 'جميع الحقوق محفوطة';
$args['site_name'] = 'موقعي الجميل';
return $args;
}
add_filter( 'sb_footer_credits_args', 'sb_change_footer_credits_args' );
كذلك يمكنك التعديل على النص كليا أو حذفه بواسطة المرشح sb_footer_credits_text
، يمكنك استخدامه على سبيل المثال لرفع الحقوق عن صفحات ومقالات معينة، على هذا الشكل:
/**
* Change or hide copyrght via filter
*
* @param string $output
* @return void
*/
function sb_filter_footer_credits_text( $output ) {
if ( is_single( array( 85, 56, 64 ) ) ) {
return 'هذه المقالة لا تتوفر على حقوق النقل والتأليف';
}
if ( is_single( array( 67, 24, 37 ) ) ) {
return 'حقوق النشر و التأليف لهذه الصفحة مختلفة';
}
if ( is_page( array( 55, 44, 55 ) ) ) {
return;
}
}
add_filter( 'sb_footer_credits_text', 'sb_filter_footer_credits_text' );
الهدف اﻷساسي من هذا النوع من الشروحات التي أنشرها هو محاولة إيصال بعض الأفكار التي يمكن تطبيقها على ووردبريس والتعريف بقدراته وإمكانياته، بقليل من المعرفة بلغة الـ PHP ونواة ووردبريس يمكننا التغيير والتعديل على أي شيء تقريبا والوصول إلى النتيجة التي نريدها.
إذا أعجبك الموضوع لا تبخل عليّ برأيك من خلال التعليقات.