隐藏固定链接和预览按钮以及自定义帖子上的链接

时间:2013-12-09 作者:user3073032

任何人都知道如何自定义包含“Publish,save draft,and preview button“?我将隐藏除发布按钮以外的所有按钮。与相同”change permalink“还有”view,delete,edit“如何隐藏永久链接和查看链接?”?

这是我所说的插图。

从原始Wordpress自定义发布按钮

enter image description hereenter image description here

从原始wordpress自定义帖子链接

enter image description hereenter image description here

删除wordpress帖子标题下的permalink

enter image description here

3 个回复
最合适的回答,由SO网友:Maruti Mohanty 整理而成

您可以使用挂钩来完成上述操作。在活动主题中使用以下代码functions.php 获取此工作的文件

删除wordpress帖子标题下的permalink

add_filter( \'get_sample_permalink_html\', \'wpse_125800_sample_permalink\' );
function wpse_125800_sample_permalink( $return ) {
    $return = \'\';

    return $return;
}
从原始wordpress自定义帖子链接

add_filter( \'page_row_actions\', \'wpse_125800_row_actions\', 10, 2 );
add_filter( \'post_row_actions\', \'wpse_125800_row_actions\', 10, 2 );
function wpse_125800_row_actions( $actions, $post ) {
    unset( $actions[\'inline hide-if-no-js\'] );
    unset( $actions[\'view\'] );

    return $actions;
}
从原始Wordpress自定义发布按钮

下面有改进的空间,我无法让挂钩执行以下操作,所以使用css方法隐藏它。

global $pagenow;
if ( \'post.php\' == $pagenow || \'post-new.php\' == $pagenow ) {
    add_action( \'admin_head\', \'wpse_125800_custom_publish_box\' );
    function wpse_125800_custom_publish_box() {
        if( !is_admin() )
            return;

        $style = \'\';
        $style .= \'<style type="text/css">\';
        $style .= \'#edit-slug-box, #minor-publishing-actions, #visibility, .num-revisions, .curtime\';
        $style .= \'{display: none; }\';
        $style .= \'</style>\';

        echo $style;
    }
}

NOTES

附加条件语句在我的例子中,这里我已经解决了条件语句

global $pagenow;
if( \'edit.php\' == $pagenow && isset($_GET[\'page_type\']) == \'my-custom-post\' ){
     // here i use delete post row function that explained by Maruti Mohanty on my custom post 
}
还有用于添加新帖子和自定义发布元数据库设置的条件语句

global $pagenow;
    if( \'page-new.php\' == $pagenow && isset($_GET[\'page_type\']) == \'my-custom-post\' ){
         // here i use add new post and custom publish metabox function
    }
如果有其他解释,请告诉我。

谢谢

SO网友:derekshirk

我只是偶然发现了这个问题,我想分享一下我最常见的解决方案,它可能不适用于所有情况下的所有人,但我相信这是实现预期结果的最有效方法

当您注册的CPT不需要主题或插件中的单个视图输出时,只需定义属性\'public\' => false,

例如,典型的CPT注册可能如下所示:

<?php 

/**
 * Custom Post Type: cw-programs (programs)
 * Theme: Your Custom Theme
 * Desc: A custom WP theme
 *
 * @package custom-wp-theme
 * @since   1.0.0
 * @version 1.0.0
 */
function mycpt_content_type_name() {
  $labels = array(
    \'name\' => __( \'My CPT\'),
    \'singular_name\' => __( \'My CPT\' ),
    \'add_new\' => _x(\'Add New\', \'My CPT\'),
    \'add_new_item\' => __(\'Add New My CPT\'),
    \'edit_item\' => __(\'Edit My CPT\'),
    \'new_item\' => __(\'New My CPT\'),
    \'view_item\' => __(\'View My CPT\'),
    \'search_items\' => __(\'Search My CPT\'),
    \'not_found\' =>  __(\'No My CPT found\'),
    \'not_found_in_trash\' => __(\'No My CPT found in Trash\'), 
    );
    $args = array(
    \'labels\' => $labels,
    \'menu_icon\' => \'dashicons-clipboard\',
    \'public\' => false,
    \'publicly_queryable\' => false,
    \'show_ui\' => true, 
    \'query_var\' => true,
    \'capability_type\' => \'post\',
    \'hierarchical\' => false,
    \'menu_position\' => null,
    \'rewrite\' => array(\'slug\' => __( \'mycpt\' )),
    \'supports\' => array(\'title\', \'editor\'),
    \'show_in_menu\' => false
    ); 

    register_post_type(__( \'cw-program\' ),$args);
}

add_action( \'init\', \'mycpt_content_type_name\' );
一举,这将从所有相关的管理屏幕中删除视图、slug和预览更改链接。我喜欢这个解决方案,因为它不需要任何额外的功能,并且逻辑定义在与您的cpt相同的位置(显然)。希望这能帮助其他人,寻找类似的解决方案。

SO网友:Fahid Javid

我们可以通过设置publicly_queryable 参数为false。

setting **publicly_queryable** argument to false

结束

相关推荐

Permalinks not working

我知道,问了无数次,回答了无数次。我一生都找不到我的错误。正在尝试将永久链接设置为使用post name,/%postname%/尝试访问主页以外的任何其他地方都会产生404错误。默认的永久链接设置工作正常。任何帮助都将不胜感激。.htaccess在web根目录中 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.ph