Общее количество пингбеков, трекбеков в колонках записей админки
Добавление этого сниппета в файл functions.php вашей темы wordpress добавит новую колонку под названием Counts (можно изменить в коде) в таблицу списка записей блога. Эта колонка выведет общее количество пингбеков и трекбеков для каждой записи.
function commentCount($type = 'comments'){
if($type == 'trackbacks'):
$typeSql = 'comment_type = "trackback"';
$oneText = 'One :trackback';
$moreText = '% :trackbacks';
$noneText = 'No :trackbacks';
elseif($type == 'pingbacks'):
$typeSql = 'comment_type = "pingback"';
$oneText = 'One :pingback';
$moreText = '% :pingbacks';
$noneText = 'No :pingbacks';
endif;
global $wpdb;
$result = $wpdb->get_var('
SELECT
COUNT(comment_ID)
FROM
'.$wpdb->comments.'
WHERE
'.$typeSql.' AND
comment_approved="1" AND
comment_post_ID= '.get_the_ID()
);
if($result == 0):
echo str_replace('%', $result, $noneText);
elseif($result == 1):
echo str_replace('%', $result, $oneText);
elseif($result > 1):
echo str_replace('%', $result, $moreText);
endif;
}
add_filter('manage_posts_columns', 'posts_columns_counts', 1);
add_action('manage_posts_custom_column', 'posts_custom_columns_counts', 1, 2);
function posts_columns_counts($defaults){
$defaults['wps_post_counts'] = __('Counts');
return $defaults;
}
function posts_custom_columns_counts($column_name, $id){
if($column_name === 'wps_post_counts'){
commentCount('trackbacks'); echo "<br />";
commentCount('pingbacks');
}
}
Дополнительная колонка в медиа библиотеки с ID вложений
Добавление этого сниппета в файл functions.php вашей темы wordpress добавит новую колонку в медиа библиотеке с указанием ID вложения.
add_filter('manage_media_columns', 'posts_columns_attachment_id', 1);
add_action('manage_media_custom_column', 'posts_custom_columns_attachment_id', 1, 2);
function posts_columns_attachment_id($defaults){
$defaults['wps_post_attachments_id'] = __('ID');
return $defaults;
}
function posts_custom_columns_attachment_id($column_name, $id){
if($column_name === 'wps_post_attachments_id'){
echo $id;
}
}
Добавляем произвольные указатели-подсказки в темы и плагины
Добавление этого сниппета в файл functions.php вашей темы WordPress позволит вам воспользоваться новой фичей под названием «указатели». Многие из вас замечали такие указатели в новых обновлениях WordPress. Просто укажите в переменной pointer_content информацию, которую вы хотите вывести и ID с jquery для назначения указателю “$(‘#menu-appearance’)”.
![add-custom-pointers-in-themes-and-plugins-screenshot[1]](https://wpincode.com/wp-content/uploads/2014/02/add-custom-pointers-in-themes-and-plugins-screenshot1.jpg)
add_action( 'admin_enqueue_scripts', 'my_admin_enqueue_scripts' );
function my_admin_enqueue_scripts() {
wp_enqueue_style( 'wp-pointer' );
wp_enqueue_script( 'wp-pointer' );
add_action( 'admin_print_footer_scripts', 'my_admin_print_footer_scripts' );
}
function my_admin_print_footer_scripts() {
$pointer_content = '<h3>wpincode.com | Notice</h3>';
$pointer_content .= '<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>';
?>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready( function($) {
$('#menu-appearance').pointer({
content: '<?php echo $pointer_content; ?>',
position: 'left',
close: function() {
// После нажатия на кнопку Закрыть
}
}).pointer('open');
});
//]]>
</script>
<?php
}
Выводим пользователей с наибольшим количеством комментариев, его email и ссылку на сайт автора
Добавление этого сниппета в файл functions.php вашей темы WordPress позволит вам вывести список топ-комментаторов. Используйте $result->comment_author_email, $result->comments_count, $result->comment_author_url для добавления дополнительных параметров к сниппету.
function top_comment_authors($amount = 5) {
global $wpdb;
$results = $wpdb->get_results('
SELECT
COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
FROM '.$wpdb->comments.'
WHERE comment_author_email != "" AND comment_type = "" AND comment_approved = 1
GROUP BY comment_author_email
ORDER BY comments_count DESC, comment_author ASC
LIMIT '.$amount
);
$output = "<ul>";
foreach($results as $result) {
$output .= "<li>".$result->comment_author."</li>";
}
$output .= "</ul>";
echo $output;
}
Добавьте следующий кусочек кода в то место темы, куда нужно вывести список:
<? top_comment_authors(); ?>
Добавляем произвольные типы записей на страницу архива
Добавление этого сниппета в файл functions.php вашей темы WordPress позволит вам вывести произвольные типы записей на страницу архива
function add_custom_types_archive( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
'post', 'your-custom-post-type-here'
));
return $query;
}
}
add_filter( 'pre_get_posts', 'add_custom_types_archive' );
