Catholic bishops urge Kenyans to reject divisive politics ahead of 2027 polls
Listen to article
3 min listen
Audio reading is not supported on this browser.
Ready
Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.
Ol Kalou violence: Amnesty Kenya wants CS Murkomen to account for police failure during polls
Lucy Mumbi
·
2 hours agoRead nextOpens a fresh page.
The Kenya Conference of Catholic Bishops has urged Kenyans to reject leaders who spread hatred and ethnic divisions, saying unity, dialogue and peaceful coexistence are essential as the country prepares for the 2027 General Election.
Kenyans have been urged to reject leaders who seek political power by sowing division and spreading hatred ahead of the 2027 General Election.
Clerics led by the Kenya Conference of Catholic Bishops (KCCB) said the country’s strength lies in unity and peaceful coexistence, urging citizens to resist attempts to pit communities against one another.
KCCB Chairman Archbishop Maurice Muhatia Makumba said national unity can only be safeguarded if Kenyans refuse to embrace politics that exploit ethnic and social differences. He called on citizens to stand together and reject divisive rhetoric that threatens peace and harmony.
More To Read
- Ol Kalou violence: Amnesty Kenya wants CS Murkomen to account for police failure during polls
- Defenders Coalition demands release of activist Ademba, says arrest meant to intimidate election observers
- IEBC defends failure to punish early campaigns, cites legal limits
- Kenya faces 84 per cent risk of electoral violence in 2027, report warns
- Two new parties seek provisional registration ahead of 2027 elections
- Goon violence: Why the blame game could fuel chaos ahead of the 2027 General Election
“The Church has a responsibility to continue promoting peace and unity by reminding people that our strength lies in living together in harmony and rejecting any form of politics that divides us,” Archbishop Muhatia said.
He said one of the best ways to protect the country’s peace and cohesion is for Kenyans to reject leaders who use hatred and discrimination to win political support.
The remarks were made during the installation ceremony of Bishop Simon Peter Kamomoe as the second Bishop of the Catholic Diocese of Wote.
Latest Stories
- Manhunt launched after two murder suspects escape Mombasa police custody
- Top 10 universities by student placement in 2026
- Ol Kalou violence: Amnesty Kenya wants CS Murkomen to account for police failure during polls
- Kenya Airways cancels New York to Nairobi flight over severe weather
Archbishop of the Catholic Archdiocese of Nairobi Philip Anyolo also urged Kenyans to embrace dialogue, reconciliation and peaceful coexistence.
Anyolo said the current political climate calls for greater commitment to building bridges and strengthening relationships rather than deepening divisions.
He added that lasting peace can only be achieved through mutual respect, understanding and a willingness to engage in constructive dialogue for the common good.
Makueni Governor Mutula Kilonzo Junior, who attended the ceremony, acknowledged the Church’s role in guiding the country through prayer and moral leadership.
He said the Church remains an important partner in promoting peace, particularly during politically sensitive periods, and encouraged continued collaboration in advancing national cohesion.
The installation of Bishop Simon Peter Kamomoe marked a significant milestone for the Diocese of Wote while also providing Church and civic leaders with an opportunity to reaffirm their commitment to peace, unity and reconciliation as Kenya prepares for the 2027 General Election.
Other Topics To Read
Top Stories Today
- Reject divisive leaders ahead of polls, Catholic bishops tell Kenyans
- Ol Kalou violence: Amnesty Kenya wants CS Murkomen to account for police failure during polls
- Mombasa police launch manhunt after two murder suspects escape custody
- Kenya Airways cancels New York to Nairobi flight over severe weather
- KRA gives owners 30 days to collect goods at Kisumu and Isebania customs warehouses or risk auction
- Lamu Leaders, residents back Sh2.2 trillion Dangote-linked oil refinery, demand local inclusion
`;
}
return “;
}
function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;
const likeButton = canComment && comment.status === ‘approved’
? “
: “;
const replyButton = canComment && comment.status === ‘approved’
? “
: ”;
return `
`;
}
function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;
const edited = comment.is_edited
? “
: ”;
const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `
`
: “;
return `
`;
}
function replyFormMarkup(commentId) {
return `
`;
}
function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;
if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}
notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}
function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;
const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}
function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});
const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;
const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;
replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);
const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}
function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}
async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};
const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);
async function loadComments(reset = true) {
if (state.busy) return;
state.busy = true;
setNotice(widget, ”);
loading.hidden = false;
if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}
try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);
const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});
const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};
state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;
setCount(widget, state.total);
if (reset) {
list.innerHTML = ”;
}
if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}
loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}
async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);
if (!textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
textarea.value = ”;
if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;
if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}
setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}
async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);
if (!commentId || !textarea) return;
const content = textarea.value.trim();
if (!content) return;
const originalText = button ? button.textContent : ”;
try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});
if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}
closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}
async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;
const originalHtml = button.innerHTML;
try {
button.disabled = true;
button.innerHTML = ‘Working…’;
const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});
const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);
button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}
if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}
if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}
if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}
widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}
const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}
const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});
widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});
loadComments(true);
}
document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();
Trending
Kenyans withdraw billions from Boma Yangu despite growth in housing savingsNews
|Lucy Mumbi
|7 hours ago
Catholic bishops urge Kenyans to reject divisive politics ahead of 2027 pollsNews
|Lucy Mumbi
|32 minutes ago
Lamu Leaders, residents back Sh2.2 trillion Dangote-linked oil refinery, demand local inclusionCoast
|Farhiya Hussein
|3 hours ago
Tunisia scorched by record-breaking heat wave, temperatures near 50 degrees CelsiusAfrica
|XINHUA
|3 hours ago
Kenya among fastest deteriorating food insecurity hotspots as 4.1 million face hungerNews
|Lucy Mumbi
|6 hours ago
Teens who can’t control social media use more likely to develop ADHD symptomsHealth
|Charity Kilei
|8 hours ago
Kenya launches AI-powered coding competition for schoolchildrenTechnology
|XINHUA
|1 day ago
England rewrite history as Saka hat-trick and Mbappé milestones headline unforgettable World Cup bronze thrillerNews
|Erick Kariuki
|4 hours ago
65 State agency boards retired as government moves to bring in professionalsNews
|Lucy Mumbi
|7 hours ago
Manhunt launched after two murder suspects escape Mombasa police custodyCoast
|Farhiya Hussein
|1 hour ago
