- padrão gratuito para a edição automática
<p>eu tenho procurado por algumas horas e consultado vários posts, mas parece que isso funciona.</p><p>eu tenho esse bug estranho, onde os usuários não podem ver seus rascunhos de um tipo de post personalizado, se eles não atribuem uma categoria a eles. então, se eles clicarem em "salvar como rascunho" e quiserem voltar para ele mais tarde, não será visível para eles (eu tenho que entrar como administrador e definir uma categoria para que ele fique visível para eles). eu não tenho idéia do porque isso está acontecendo, mas estou disposto a contornar isso.</p><p>em<strong> configurações </strong>&gt;<strong> escrita </strong>você pode definir a categoria padrão para uma postagem normal, mas não existe essa opção disponível para um tipo de postagem personalizada. eu estou bem para definir o tipo padrão para 'uncategorized', assim como é definido com posts regulares. então estou tentando conseguir isso.</p><p>alguns trechos que eu encontrei como <a href="https://wordpress.org/support/topic/set-category-to-a-custom-post-type-automatically?replies=10">this</a> são voltados para 'default category upon publish', mas eu preciso deles no autosave (alguns usuários apenas têm acesso a 'save draft' e 'submit for publishing'). pelo menos 6 que eu encontrei não foram respondidas.</p><p>eu implementei um código específico sem sucesso (não consigo encontrar o snippet para a vida de mim, mas a categoria padrão desejada usada no exemplo era 'autores'). isso está me deixando louca, e eu realmente aprecio sua ajuda. obrigado.</p><p>edit: eu tentei o seguinte código (que eu tenho de <a href="https://wordpress.org/support/topic/set-category-to-a-custom-post-type-automatically?replies=10">aqui</a> ) e tenho 'uncategorized' para ser verificado automaticamente após salvar para o tipo de post 'comunidade', mas o problema é que ele completamente<strong> anula </strong>outras categorias você pode substituir isso com. isto é, se você desmarcar 'não categorizado' e escolher categorias significativas, em 'publicar' ou 'salvar', todas essas seleções serão apagadas e serão revertidas para a comunidade. precisa apenas ter 'uncategorized' <em>until</em> o usuário substitui essa categoria padrão (exatamente como uma categoria defaul trabalha com o tipo 'post' regular).</p><pre><code>function add\_comm\_category\_automatically($post\_id) { global $wpdb; if(!wp\_is\_post\_revision($post\_id)) { $uncategorized= array (1); wp\_set\_object\_terms( $post\_id, $uncategorized, 'category'); } } add\_action('save\_post', 'add\_comm\_category\_automatically'); </code></pre>
<p>use o gancho de ação save\_post e, na função de retorno de chamada, use a função wp\_set\_object\_terms ($ object\_id, $ terms, $ taxonomy, $ append).</p><p>para o seu post personalizado digite o código pode ser assim</p><pre><code>function save\_book\_meta( $post\_id, $post, $update ) { $slug = 'book'; //slug of cpt // if this isn't a 'book' post, don't update it. if ( $slug != $post-&gt;post\_type ) { return; } wp\_set\_object\_terms( get\_the\_id(), $term\_id, $taxonomy ); } add\_action( 'save\_post', 'save\_book\_meta', 10, 3 ); </code></pre><p>$ taxonomy - o contexto no qual relacionar o termo ao objeto. isso pode ser categoria, post\_tag ou o nome de outra taxonomia.</p><p>$ term\_id - id do termo da taxonomia</p><p>eu não conheço seu projeto completamente, então você pode considerar este trecho como uma maneira de fazer o que você queria fazer.</p><p>para mais referências, visite estes dois links abaixo:</p><p> <a href="https://codex.wordpress.org/function\_reference/wp\_set\_object\_terms">https://codex.wordpress.org/function\_reference/wp\_set\_object\_terms</a> </p><p> <a href="https://codex.wordpress.org/plugin\_api/action\_reference/save\_post">https://codex.wordpress.org/plugin\_api/action\_reference/save\_post</a> </p><p>eu espero que você encontre uma saída.</p>
<p>você não precisa de um plugin para isso. apenas <a href="http://www.ostraining.com/blog/joomla/overrides/">substitua</a> uma visualização de categoria e faça seu cheque lá.</p><p>por exemplo, para a substituição da exibição do blog <a href="https://github.com/joomla/joomla-cms/blob/staging/components/com\_content/views/category/tmpl/blog.php">blog.php</a> e na linha 60 faça sua verificação:</p><pre><code>if ($item-&gt;created\_by == jfactory::getuser()-&gt;id) : echo $this-&gt;loadtemplate('item'); } endif; </code></pre><p>é claro que isso é apenas um exemplo, mas mostra o poder de substituir. espero que isso ajude.</p> <p>esta descrição é gerada pela função <code>post\_excerpt\_meta\_box()</code> e não é passada através de nenhum filtro explícito. no entanto, ele é ecoado pela função relacionada à tradução <a href="http://codex.wordpress.org/function\_reference/\_e"><code>\_e()</code></a> e, assim, passa pelo filtro <code>gettext</code> (que, da sua pergunta, você já conhece).</p><p>quanto a limitá-lo ao seu cpt, acho que o tipo de postagem atual em admin é mantido na variável global <code>$post\_type</code> que você pode verificar.</p> <p>fala ai anderson, tudo bem? o bootstrap por padrão já vem com algumas configurações de <em>reset</em>, mas, eu particularmente prefiro adicionar o <code>normalize.css</code> em todos meus projetos front-end.</p>
<p>espero ter ajudado.</p> <p>não sei exatamente o que você está fazendo, mas o código a seguir funcionou para mim na medida em que criou um novo produto e o adicionou ao carrinho. note que tive que usar <code>$\_get</code> para testar na minha configuração, pois não tenho o restante do seu código e não sinto vontade de criar um formulário.</p><p><strong>edit</strong>: adicionei um elemento <code>&lt;form&gt;</code> simples e mudei para <code>$\_post</code>.<strong> edit 2 </strong>: eu removi o formulário. aparentemente, o op tem o formulário na primeira página.</p><pre><code>add\_action('init', 'customcart'); function customcart() { if (isset($\_post["addcustomcarts"])) { global $woocommerce; $my\_post = array( 'post\_title' =&gt; 'my post', 'post\_content' =&gt; 'this is my post.', 'post\_status' =&gt; 'publish', 'post\_author' =&gt; 1, 'post\_type' =&gt;'product' ); // insert the post into the database $product\_id = wp\_insert\_post( $my\_post ); if ( $product\_id ){ add\_post\_meta($product\_id, '\_regular\_price', 100 ); add\_post\_meta($product\_id, '\_price', 100 ); add\_post\_meta($product\_id, '\_stock\_status', 'instock' ); //getting error on this line. $woocommerce-&gt;cart-&gt;add\_to\_cart( $product\_id, $quantity=1 ); exit( wp\_redirect( get\_permalink( woocommerce\_get\_page\_id( 'cart' ) ) ) ); } } } </code></pre> <p>bom dia thiago! tudo bom?</p>
<p>eu não sou super manjador de python, mas entendo de conceitos, então acho que posso te ajudar nesse caso.</p>
<h3>conceito do <code>static</code></h3>
<p>um método estático dentro de uma classe indica que este método pode ser invocado sem a necessidade de que você tenha uma instância desta classe.</p>
<h3>usos do <code>static</code></h3>
<p>em geral, esse modificador é usado pra métodos que criam e retornam instâncias da própria classe, no padrão singleton, mas podem ter outros usos como por exemplo operadores de string, muito comuns em bibliotecas terceirizadas.</p>
<h3>exemplo prático</h3>
<p>abaixo vai um código com um método estático e um normal.</p>
<pre class="prettyprint"><code>class usuario(object):

 &#64;staticmethod
 def anonimo():
 return usuario(&#34;anônimo&#34;)

 def \_\_init\_\_(self, nome):
 self.\_\_nome &#61; nome

 def nome(self):
 print &#34;nome de usuário: %s&#34;%(self.\_\_nome)</code></pre><p>e aqui alguns exemplos de uso:</p>
<pre class="prettyprint"><code>thiago &#61; usuario(&#34;thiago&#34;)
thiago.nome()
&#34;&#34;&#34;
&gt;&gt;&gt; nome de usuario: thiago
&#34;&#34;&#34;

anonimo &#61; usuario.anonimo()
anonimo.nome()
&#34;&#34;&#34;
&gt;&gt;&gt; nome de usuario: anonimo
&#34;&#34;&#34;

usuario.nome(thiago)
&#34;&#34;&#34;
&gt;&gt;&gt; nome de usuario: thiago
&#34;&#34;&#34;

usuario.nome()
&#34;&#34;&#34;
&gt;&gt;&gt; traceback (most recent call last):
 file &#34;usuario.py&#34;, line 25, in &lt;module&gt;
 usuario.nome()
 typeerror: unbound method nome() must be called with usuario instance as first argument (got nothing instead)
 tradução livre: errodetipagem: método nome() não está atrelado a nenhum objeto, mas precisa ser chamado a partir de (ou tendo como primeiro argumento) uma instância de usuario
&#34;&#34;&#34;</code></pre><p>repare que é possível (em python) utilizar um método não-estático usando a sintaxe de método estático (como no terceiro exemplo, <code>usuario.nome(thiago)</code>) e ele não lançar um erro (como no último exemplo, <code>usuario.nome()</code>) contanto que você passe uma instância válida de um objeto da mesma classe.</p>
<h3>casos de uso incomuns</h3>
<p>no código acima, temos um método que retorna um usuário anônimo. porém mesmo sendo estático, o método pode ser utilizado em uma instância, como no exemplo abaixo:</p>
<pre class="prettyprint"><code>thiago &#61; usuario(&#34;thiago&#34;)
anonimo &#61; thiago.anonimo()
anonimo.nome()
thiago.nome()
&#34;&#34;&#34;
&gt;&gt;&gt; nome de usuario: anonimo
&gt;&gt;&gt; nome de usuario: thiago
&#34;&#34;&#34;</code></pre><p>este caso de uso é incomum, mas estou colocando aqui pra mostrar que o acesso a métodos estáticos é possível. apesar de neste caso não fazer sentido, em algumas ocorrências do padrão singleton isso pode ser uma ótima escolha de modelagem.</p>
<p>se quiser um exemplo disso, posso fornecer!</p>
<h3>conclusão</h3>
<p>um método estático é bem diferente de um método normal pois seu acesso é mais aberto.</p>
<p>além disso, o método estático não depende de você ter uma instância, podendo ser chamado diretamente a partir da classe. isso fica claro na assinatura, na qual não é obrigatório passar a variável <code>self</code> como primeiro parâmetro.</p>
<p>espero ter ajudado a esclarecer a dúvida, thiago! caso ainda tenha mais alguma dúvida sobre o assunto, não hesite em perguntar! sobre outros assuntos, pode abrir novos tópicos no fórum!</p>
<p>um grande abraço, bom final de semana e bons estudos!</p> <p>a função é informar checar qual o tipo de arquivo stylesheet que está sendo retornado pelo servidor. 
a especificação do html5 informa que para link &#34;stylesheet&#34; o tipo &#34;text/css&#34; é o padrão, mesmo sem colocá-lo ele assume que esse é o tipo. </p> <p>olá rayanne, tudo bom?
o ideal que você tenha o costume de salvar a cada momento de código que você termina de fazer.
salvar e debugar.
o vscoder ele tem a opção de salvar automaticamente( mas eu recomendo você criar o habito).</p> <p>oi felipe, blz?</p>
<p>o writehead() serve para passar os headers http corretos conforme a regra de negócio.</p>
<p>caso ele não seja passado, o cliente não tem como saber o tipo do retorno.</p>
<p>o que acontece é que o navegador é um cliente bastante inteligente e ele já consegue inferir que o tipo do documento é um html, mesmo sem a informação do content-type, pq o seu conteudo inicia com a tag <code>html</code>.</p>
<p>caso a url seja acessada a partir de um cliente que não faz esse tratamento, ele exibiria um texto plano.</p>
<p>você pode fazer um teste para validar essa resposta alterando o conteudo da resposta para que ele não mais inicie com a tag <code>html</code>.</p>
<p>se vc fizer isso, verá que o navegador passa a exibir o conteudo como texto plano normal.</p>
<p>depois compartilha aqui se a explicação te ajudou. &#61;)</p> <p>você não precisa necessariamente de um plugin para fazer isso. aqui estão 2 métodos alternativos:</p><h2>friendfeed</h2><p>você pode usar o friendfeed ( <a href="http://www.crossbrowser.net/290/using-friendfeed-to-automatically-twitter-your-new-blog-posts/">detalhes aqui</a> , isenção de responsabilidade, é o meu blog).</p><h2>feedburner</h2><p>se você usa o feedburner para gerenciar o rss do seu blog, pode ir para a guia <code>publicize</code>, clicar no link da barra lateral <code>socialize</code> e configurar o feedburner para publicar no twitter quando surgir uma nova postagem (tem mais opções que o friendfeed).</p> <p>parece sempre haver um pouco de confusão sobre esse assunto. talvez o wordpress possa fazer um trabalho melhor orientando seus usuários nesse processo. embora, eu suponha que o multi-site não se destinava a ser usado para tlds.</p><p>então, primeiro de tudo, eu iria <a href="https://codex.wordpress.org/installing\_wordpress">instalar o wordpress</a> , <a href="https://codex.wordpress.org/create\_a\_network">setup multisite</a> , e configurá-lo como uma configuração de rede de subdomínio.</p><p>aqui está uma configuração de exemplo para o seu arquivo <code>wp-config.php</code> no diretório base da sua instalação do wordpress:</p><pre><code>/* multisite */ define( 'wp\_allow\_multisite', true ); define( 'multisite', true ); define( 'subdomain\_install', true ); define( 'domain\_current\_site', 'www.primary-domain.com' ); define( 'path\_current\_site', '/' ); define( 'site\_id\_current\_site', 1 ); define( 'blog\_id\_current\_site', 1 ); </code></pre><p>então, aqui está a configuração básica para o seu arquivo <code>.htaccess</code> como uma configuração de subdomínio, no diretório base da sua instalação do wordpress:</p><pre><code># bof wordpress rewriteengine on rewritebase / rewriterule ^index\.php$ - [l] # add a trailing slash to /wp-admin rewriterule ^wp-admin$ wp-admin/ [r=301,l] rewritecond %{request\_filename} -f [or] rewritecond %{request\_filename} -d rewriterule ^ - [l] rewriterule ^(wp-(content|admin|includes).*) $1 [l] rewriterule ^(.*\.php)$ wp/$1 [l] rewriterule . index.php [l] # eof wordpress </code></pre><p>agora, para que os tlds funcionem corretamente, eu tive que fazer algumas configurações adicionais no arquivo <code>wp-config.php</code> assim:</p><pre><code>define( 'cookie\_domain', '' ); define( 'admin\_cookie\_path', '/' ); define( 'cookiepath', '/' ); define( 'sitecookiepath', '/' ); </code></pre><p>é isso com as configurações específicas do wordpress.</p><p>pessoalmente, gosto de ter um host virtual apache para o domínio primário na rede e, em seguida, configurar esse host virtual com domínios de alias. cada domínio de alias é um dos sites adicionais em sua rede.</p><p>no entanto, você acaba aprimorando sua configuração, precisa do dns de cada domínio para resolver o mesmo servidor da web e cada domínio deve ser apontado para o mesmo diretório em que o domínio principal é instalado com o wordpress. cada domínio em sua rede precisa apontar para o mesmo servidor da web com registros dns e compartilhar o mesmo caminho de diretório para os arquivos usados ​​pelo wordpress.</p><p>depois de configurar e configurar tudo corretamente, conforme discutido acima. faça o login em sua área de administração do wordpress e navegue até a área de administração de rede para adicionar um novo site à sua rede.</p><p>quando você vai adicionar um site, ele vai obrigá-lo a adicionar o site como se fosse um sub-domínio em seu domínio principal. apenas role com isso. digite algo temporário.</p><p>uma vez que o site foi adicionado, então vá encontrá-lo na lista de sites em sua rede. clique em editar nesse site específico. agora, você pode totalmente 100% alterar o nome de domínio desse site. é quando você colocaria o nome de domínio real para esse site de tld.</p><p>eu sei que é um pouco complicado fazer isso, mas funciona e você não precisa usar nenhum plug-in.</p>