Private Pages as Root Page for CPTs

Traditionally, the Breadcrumb NavXT settings page has only allowed published/publicly visible pages be the root page for custom post types. This follows what WordPress core does with the homepage and posts page. However, in some circumstances, having a private page be the root page for a custom post type makes sense.

Introduced in Breadcrumb NavXT 7.4, the bcn_admin_post_root_args filter allows for control over the arguments passed into the root page drop down. Below is an example of using the bcn_admin_post_root_args filter to allow private pages to show up in the root page drop down:

add_filter('bcn_admin_post_root_args', 'my_bcn_admin_post_root_args', 10, 2);
function my_bcn_admin_post_root_args($args, $post_type_name)
{
	$args['post_status'] = array('publish','private');
	return $args;
}

This can be extended to only allow private pages to be the root page for specific post types (by checking the $post_type_name parameter for the desired post type). Lastly, while the setting is for the root page, it does not have to be limited to the page post type.

-John Havlik

By the time you are reading this post, Jetpack has been removed from this site. Those “subscribed” to this website will no longer get email updates (for comments and new posts).

Breadcrumb NavXT 7.4.1

This is the first, and hopefully only, bug fix release of the 7.4 branch of Breadcrumb NavXT. In 7.4.0, changes made to improve WordPress 6.7 compatibility resulted in Breadcrumb NavXT registering the legacy widget too late in the action sequence. This release fixes that issue making the legacy widget available again.

-John Havlik

Breadcrumb NavXT 7.4.0

Holy incremental improvements Batman! This second feature release of 2024 introduces the bcn_admin_post_root_args filter. This filter adds the ability to modify the arguments passed into wp_dropdown_pages() for the root page selection for the posts in the Breadcrumb NavXT settings page.

On the bugfix front, the cause of the “Function _load_textdomain_just_in_time was called incorrectly” notice in WordPress 6.7 was fixed. Additionally, two bugs relating to breadcrumb trail generation on the home page when in the loop and when using the Breadcrumb Trail block in the block theme editor. Speaking of the Breadcrumb Trail block, two typos in two of the strings in the Breadcrumb Trail block were fixed. Lastly, bcn_breadcrumb_trail::post_hierarchy() was improved to be more resilient to unexpected returns from get_post().

Lastly, as a final reminder, in the next release of Breadcrumb NavXT (7.5.0) the bcn_breadcrumb::title_trim function will be removed. This is in alignment with the deprecation schedule for the title_trim function outlined back in 2021.

-John Havlik

I Guess it’s Back to Gentoo Then

To preface this post, it was started as a draft a few months back titled “Back to Gentoo”. At the time it was obvious all was not well in Funtoo land, and for my specific use cases, it was no longer serving its purpose. In the mean time, the BDFL of Funtoo officially discontinued the Funtoo project back on July 26th, 2024 and later revised its status to “hobby mode”.

Funtoo was fun, until recently, when the wheels just fell off. Between stupid errors like new .0 releases of packages not knowing that the distributed files remove the .0 (so the source isn’t found and the build fails), and progressively worse Wayland and KDE support Funtoo is no longer fun. Oh, and Docker broke.

In my opinion, the one thing Funtoo did better was a much better profile system. Funtoo used a layered profile system which had “mixins” which you used to specify what you wanted the system to be. Using intel graphics? Use a mixin. Using KDE plasma? Use a mixin. It essentially was an abstraction of the USE flag system, which was more focused on use cases instead of low level features. The beauty being, if a package’s USE flags changed, you didn’t end up in circular dependency resolution hell quite as often.

Gentoo doesn’t have this. In Gentoo you pick a single profile (so Gentoo has a lot of profiles to handle the various configuration permutations that exist). This isn’t great, it doesn’t scale, and, honestly, it’s a mess. That said, after setting up two servers with Gentoo, I think I can get over the clunky profiles. I took the time to actually setup a distribution kernel with custom config.d overrides. Now, kernel updates are almost painless. While Funtoo had a way of doing the same thing (managed custom kernel config, build, and install), my insistence on using efistub precluded using it, so I had been using genkernel.

Next up on the migration docket are a couple of HTPCs that are not able to run Steam OS, and finally my daily driver laptop (well, if I’m being honest, it’s about time to replace the laptop anyways as the battery is starting to reach the end of its useful life).

-John Havlik