شروحات ووردبريس

طريقة إضافة حقوق النشر والتأليف لووردبريس

من الشائع جدًا عل

على شبكة اﻹنترنت أن تظهر في أسفل المواقع حقوق النشر والتأليف، لكن دائما هناك مشكلة، فأغلب المواقع تُظهرها مصحوبة فقط بالتاريخ الحالي، على سبيل المثال: كل الحقوق محفوظة © 2018.

هكذا نكون قد وضعنا حقوق النشر والتأليف فقط للمواضيع المنشورة في العام الحالي. وماذا عن المواضيع التي نشرت في أعوام سابقة, ليس لديك عليها حقوق؟

من المنطقي أن يتم إضافة حقوق التأليف والنشر كاملة منذ العام الذي تم فيه نشر أول تدوينة إلى التاريخ الحالي و ذلك لضمان حقوق كل المواضيع المنشورة خلال هذه الفترة, شيء كهذا: كل الحقوق محفوظة | سعيد البقالي © 2012-2018.

للحصول على هذه النتيجة قمت بكتابة وظيفة تجلب السنة التي تم فيها نشر أول تدوينة من قاعدة البيانات ثم مقارنته مع السنة الحالية، في حالة التساوي، أي أن الموقع جديد ولم يمر على إنشاء أكثر من سنة، يتم عرض السن الحالية فقط، أما في حالة العكس فيتم عرض التاريخ منذ السنة التي تم فيها نشر أول تدوينة إلى السنة الحالية، شيء كهذا:

كل الحقوق محفوظة – [إسم الموقع] © [التاريخ]

قم بإضافة هذا الكود إلى ملف 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 ) ) );
	unset( $args );

	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 );
}
PHP
Copy

بعد حفظ التغييرات في ملف functions.php عليك فتح ملف footer.php ووضع الكود التالي في المكان المناسب.

<?php echo esc_html( sb_get_footer_credits_text() ) ?>
PHP
Copy

إذا أردت التغيير في القيم اﻹفتراضية للوظيفة عن طريق تمرير مصفوفة لها بقيم مخصصة كالتالي:

$args = array(
    'first_year'      => '2012',
    'current_year'    => '2018',
    'symbol'          => '&copy;',
    'text'            => 'كل الحقوق محفوطة',
    'site_name'       => 'إسم الموقع',
    'text_separator'  => ' | ',
    'years_separator' => '-',
);

echo esc_html( sb_get_footer_credits_text( $args ) );
PHP
Copy

كذلك يمكنك تغيير القيم اﻹفتراضية للوظيفة عن طريق المرشح (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' );
PHP
Copy

كذلك يمكنك التعديل على النص كليا أو حذفه بواسطة المرشح 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
Copy

الهدف اﻷساسي من هذا النوع من الشروحات التي أنشرها هو محاولة إيصال بعض الأفكار التي يمكن تطبيقها على ووردبريس والتعريف بقدراته وإمكانياته، بقليل من المعرفة بلغة الـ PHP ونواة ووردبريس يمكننا التغيير و التعديل على أي شيء تقريبا والوصول إلى النتيجة التي نريدها.

ى

الوسوم

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

إغلاق