Category: Wordpress

  • Setup PHP CodeSniffer (WordPress) In Visual Studio Code

    Setup PHP CodeSniffer (WordPress) In Visual Studio Code

    This guide will help you set up PHP CodeSniffer (PHPCS) in Visual Studio Code to enforce WordPress Coding Standards. Prerequisites Installation Steps Normally, PHPCS will automatically detect the installed standards, but if you have installed them in a custom location, you need to set it manually: Check installed coding standards VS Code Configuration Usage Common…

  • Exclude pages  from wp-sitemap.xml in WordPress?

    Exclude pages from wp-sitemap.xml in WordPress?

    Add checkbox on all pages table in dashboard, to mark the pages will be exclude from wp-sitemap.xml  This will involve several steps:

  • WordPress Rest Requests

    WordPress Rest Requests

    Overview While the WordPress REST API may be called internally within other WordPress code via PHP, the REST API is designed to be used remotely over HTTP. HTTP is the foundation for communication of data over the internet, and any application capable of HTTP requests may make use of the WordPress REST API, whether that…

  • How to Completely Disable Comments in WordPress

    How to Completely Disable Comments in WordPress

    Completely Disable Comments, to remove all comments manually from your site, you can paste the following code into your theme’s functions.php file.

  • 修复WordPress后台图片显示,使用AliyunOSS插件时

    修复WordPress后台图片显示,使用AliyunOSS插件时

    WordPress 使用 AliyunOSS 插件 如(OSS Aliyun)将图片上传到OSS服务。如果选择 不上传缩略图,使用 oss 截图功能生成缩略图的话, 后台一些地方缩略图显示会有问题,如 特色图片,和 媒体库。 使用下面的代码可以解决改问题,使用 OSS缩略图功能代替 WordPress生成的缩略图。

  • Nginx For WordPress
  • 在WordPress Feeds 里加入特色图片

    在WordPress Feeds 里加入特色图片

    编辑你的Feed模板基本与编辑你的主题模板一样。然而,Feed模板不集成到WordPress主题系统;如果你希望你的订阅的不同版本,你需要创建额外的模板。 自定义Feed模板 feed 模板位于/wp-includes/feed-{type}.php文件, 包括rdf格式、rss、rss和atom。他们是由feed重写规则使用一系列的行动中定义wp-includes /功能。使用 add_action wp-includes / default-filters.php php和附加。 为了覆盖需要清楚自己的模板默认行为叫load_template然后采取适当的步骤。使用一个模板为默认的一个示例rss2 feed 位于模板目录为自定义文章类型: remove_all_actions( ‘do_feed_rss2’ ); add_action( ‘do_feed_rss2’, ‘itc_feed_rss2’, 10, 1 ); function itc_feed_rss2( $for_comments ) { $rss_template = get_template_directory() . ‘/feeds/itc_feed_rss2.php’; if(get_query_var( ‘post_type’ ) == ‘post’ && file_exists( $rss_template ) ) load_template( $rss_template ); else do_feed_rss2( $for_comments ); // Call default function } 然后在你的主题里建立一个feeds…

  • WordPress 获取相关文章

    WordPress 获取相关文章

    或许有点用,不过只适用与文章类型。 设想是: 首先获取拥有相同标贴的文章 如果数量不足,获取拥有部分相同标签的文章 如果数量还不足,获取拥有相同分类的文章 再不足,获取部分相同分类的文章.

  • WordPress 如何在 Child Theme 重写 Parent 里的 shortcode
  • A simple way to schedule an Minutely event in WordPress

    A simple way to schedule an Minutely event in WordPress

    之前一直没有注意到要在执行任务计划之前先清除,以至于每隔1分钟就添加一个新的任务计划,最后内存枯竭。

  • 怎么定制 Yoast breadcrumb

    怎么定制 Yoast breadcrumb

    一般来说Yoast SEO 的 breadcrumb 功能已经很好了。 但是有的时候有的情况下还是需要一定的定制。 如果你有一个自定义文章 custom post type 叫 product,默认情况下, custom post type archive 页面会自动列出所有的 products,但是如果你想更容易的定制 product list 页面,我觉得最好还是创建一个页面模板, page-products.php, 然后创建一个页面来使用这个模板,这样你可以使用 custom fileds 来为这个页面定制更多可控制的内容。 为什么我不使用 custom post type archive page: archive page 的url 用的是 post-type, 也就是你的链接会是 domian.com/product/, 然而这个情况下的话我觉得用 domain.com/products/ 更有道理些。 如果 product archive 页面还有其他内容,banner 图片,描述,等等,这样你就很难去设置,而通过页面custom fileds 就很容易解决。 在使用 WPML 的时候更高的兼容性。 但是这样的设置在使用 Yoast breadcrumb 的时候会出现一个问题,就是你在 product…

  • 怎么把自定义文章类型(Custom Post Types)加入到 WordPress 主RSS

    怎么把自定义文章类型(Custom Post Types)加入到 WordPress 主RSS

    你需要在你的主题函数里添加一个滤镜(filter),例如: function _feed_request($qv) { if (isset($qv[‘feed’])) $qv[‘post_type’] = get_post_types(); return $qv; } add_filter(‘request’, ‘_feed_request’); 这个滤镜修改了Wordpress的查询,保留默认的文字类型同时加入所有的自定义文章类型(Custom Post Types)。 但是如果只想指定的几个类型在你的feed里,你可以这样: function _feed_request($qv) { if (isset($qv[‘feed’]) && !isset($qv[‘post_type’])) $qv[‘post_type’] = array(‘post’, ‘event’, ‘product’); return $qv; } add_filter(‘request’, ‘_feed_request’); 这样在主feed里就会同时加入 post,event 和 product。

  • String translation not working when do wordpress Ajax with WPML

    String translation not working when do wordpress Ajax with WPML

    正常的配置 WPML 使用 PO/MO 文件 使用 Codestyling Localisation 创建 PO/MO 文件 问题是在时候 Ajax 的时候,函数 __() 失效, 因为,首先你需要加载所有关于当前语言的翻译。很奇怪的 WPML 不能正确的使用翻译文件,这可能是 WORDPRESS 和 WPML 的一些限制。暂时的,下面的方法可能对大家有些帮助。 如果你做一个搜索的功能,首先,添加一个隐藏域到表单里: if(defined(‘ICL_SITEPRESS_VERSION’) && defined(‘ICL_LANGUAGE_CODE’)){ echo ‘<input type=”hidden” id=”lang” name=”lang” value=”‘.ICL_LANGUAGE_CODE.'” />’; } 在 Ajax call: if(!empty($_REQUEST[‘lang’])) { global $sitepress; $sitepress->switch_lang($_REQUEST[‘lang’], true); $lang = get_template_directory() . ‘/language’; $unload = unload_textdomain(‘textdomain’); $load = load_textdomain(‘textdomain’, $lang…

  • Move Excerpt After Title Field in WordPress Backend

    Move Excerpt After Title Field in WordPress Backend

    Just feel better if the excerpt div appear after title field function wpdevil_to_admin_head() { echo <<<EOF <script> jQuery(document).ready(function(cash) { if($(‘#postexcerpt’).length > 0){ var preexcerpt = $(‘#postexcerpt’); var curwysiwyg = $(‘#postdivrich’); curwysiwyg.prepend(preexcerpt); } }); </script> EOF; } add_action(‘admin_head’, ‘wpdevil_to_admin_head’);  

  • List taxonomies and categories without link in WordPress

    List taxonomies and categories without link in WordPress

    Maybe you wanna list taxonomies and categories by function the_terms(‘,’) or the_category(‘,’) but without the Links, these filter below can help make it. add_filter(‘the_terms’, ‘no_terms_links’, 10, 2); function no_terms_links($term_list, $taxonomy) { if (‘publication_category’ === $taxonomy){ return wp_filter_nohtml_kses($term_list); } return $term_list; } //the_category add_filter(‘the_category’, ‘no_category_links’, 10, 1); function no_category_links($thelist) { return wp_filter_nohtml_kses($thelist); }  

  • WordPress 多媒体库只显示当前用户上传的文件

    WordPress 多媒体库只显示当前用户上传的文件

    在 wordpress 的 media library 里只显示当前用户上传的文件。也试用于 acf_form //wordpress show only media user has uploaded add_action(‘pre_get_posts’,’ml_restrict_media_library’); function ml_restrict_media_library( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, ‘WP_User’) ) return; if( ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’ ) return; if( !current_user_can(‘manage_media_library’) ) $wp_query_obj->set(‘author’, $current_user->ID ); return; } is_a() 函数已废弃,自 PHP 5 起使用 instanceof 类型运算符。上例在 PHP 5…

  • Change position of Featured image Metabox in wordpress

    特征图片的位置一开始已经写死在Wordpress 核心里了,如果你想把它移到左边区域,或者边栏的靠前位置,下面或许是一个解决方案。 首先是去除掉特色图片的metabox,然后使用 add_meta_box 重新添加。 post_thumbnail_meta_box 是一个已经定义好的函数,可以直接调用。 前提:你必须在模板里已经启用 Post Thumbnails add_theme_support( ‘post-thumbnails’ ); add_theme_support( ‘post-thumbnails’, array( ‘post’ ) ); // Posts only add_theme_support( ‘post-thumbnails’, array( ‘page’ ) ); // Pages only add_theme_support( ‘post-thumbnails’, array( ‘post’, ‘movie’ ) ); // Posts and Movies 然后: add_action(‘do_meta_boxes’, ‘customposttype_image_box’); function customposttype_image_box() { remove_meta_box( ‘postimagediv’, ”, ‘side’ ); add_meta_box(‘postimagediv’, __(‘Featured Image’),…

  • 降低 Yoast metabox 的优先级

    Yoast 是一款非常优秀的 SEO 插件,但是它生产的 metabox 总是觉得优先级太高,通过下面的filter可以降低它的优先级,将Yoast的metabox排到后面去。 if (is_admin()) : add_filter( ‘wpseo_metabox_prio’, function() { return ‘low’;}); endif;

  • Remove Mappress metabox from WP admin except specific page template

    Mappress 是一个很好用的google地图插件,但是它在后台的每个编辑页面里都添加了一个Metabox,大多时候这都不是我们想要的,所以我创建了一个 page-contact.php 的页面模板。让它出现在选择了该页面模板的页面。 if (is_admin()) : function remove_plugin_metaboxes(){ global $post; //var_dump(get_page_template_slug($post->ID)); if(get_page_template_slug($post->ID) != “page-templates/page-contact.php”){ remove_meta_box(‘mappress’, ‘page’, ‘normal’); remove_meta_box(‘mappress’, ‘page’, ‘side’); } } add_action( ‘do_meta_boxes’, ‘remove_plugin_metaboxes’ ); endif;

  • Remove classes and id from wp_nav_menu

    function my_special_nav_class( $classes, $item ) { foreach($classes as $key=>$class){ if(preg_match(‘/^menu-item(.*)|^page(.*)/i’,$class)){ unset($classes[$key]); } } return $classes; } add_filter( ‘nav_menu_css_class’, ‘my_special_nav_class’, 10, 2 ); this filter will remove all the classes beginning as ‘menu-item’ and ‘page’. function my_special_nav_id($id) { return ”; } add_filter( ‘nav_menu_item_id’, ‘my_special_nav_id’ ); this filter will remove the id of ‘li’ element