Τα αρχεία logs (bins) της mysql πιάνουν πολύ χώρο. Είναι σχεδόν ολόκληρο το μέγεθος της βάσης για κάθε μέρα που κρατιούνται. Καλό είναι να υπάρχει ένα όριο ημερών για να μην γίνεται waste of resources.
[mysqld]
expire_logs_days=3
Τα αρχεία logs (bins) της mysql πιάνουν πολύ χώρο. Είναι σχεδόν ολόκληρο το μέγεθος της βάσης για κάθε μέρα που κρατιούνται. Καλό είναι να υπάρχει ένα όριο ημερών για να μην γίνεται waste of resources.
[mysqld]
expire_logs_days=3
Σε command promt πατάμαε το παρακάτω path.
%AppData%\Microsoft\Windows\Themes\
Αντικαθιστούμε τα αρχεία με την εικόνα που θέλουμε. Κάνουμε log off.
Βρίσκουμε αυτά που δεν κάνουν match
SELECT DISTINCT tags_to_news.tag_id, tags.name FROM `tags_to_news` LEFT OUTER JOIN tags ON tags.id = tags_to_news.tag_id WHERE tags.name IS NULL
Μια από τις κλασικές χαζομάρες της Microsoft. Για να γίνει εισαγωγή id μέσω εντολής πρέπει να είναι κλειστό το ID PROTECTION. Πρέπει πρώτα να απενεργοποιηθεί, να οριστεί η στήλη στην εισαγωγή και έπειτα να ενεργοποιηθεί ξανά.
SET IDENTITY_INSERT NewCustomers ON;
INSERT INTO NewCustomers (id, datec, NewCustomerCount, NewUserCount, CustomerCategory) VALUES ('22','2018-10-13', '6367','0','2');
SET IDENTITY_INSERT NewCustomers OFF;
Πολλές φορές πρέπει να αντιγράψουμε μόνο τις κεφαλίδες από grouped κελιά από το excel σε άλλο φύλλο. Για να το κάνουμε αυτό πρέπει να επιλέξουμε την περιοχή που θέλουμε και μετά πατάμε το Find and Select που φαίνεται στην εικόνα.
Έπειτα επιλέγουμε Go to Special και στο παράθυρο που βγαίνει επιλέγουμε Visible cells only όπως φαίνεται και στο παρακάτω screenshot.
Περνάμε στις μακροεντολές VB και την τρέχουμε.
Sub DigiSpot()
Dim wb As Workbook
Dim ThisSheet As Worksheet
Dim NumOfColumns As Integer
Dim RangeToCopy As Range
Dim WorkbookCounter As Integer
Dim RowsInFile
Dim Prefix As String
Application.ScreenUpdating = False
'Initialize data
Set ThisSheet = ThisWorkbook.ActiveSheet
NumOfColumns = ThisSheet.UsedRange.Columns.Count
WorkbookCounter = 1
RowsInFile = 100 'Κάθε πόσες γραμμές θέλουμε να σπάσει το excel
Prefix = "DigiSpot" 'Όνομα αρχείου
For p = 1 To ThisSheet.UsedRange.Rows.Count Step RowsInFile
Set wb = Workbooks.Add
Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 1, NumOfColumns))
RangeToCopy.Copy wb.Sheets(1).Range("A1")
wb.SaveAs ThisWorkbook.Path & "\" & Prefix & "_" & WorkbookCounter
wb.Close
WorkbookCounter = WorkbookCounter + 1
Next p
Application.ScreenUpdating = True
Set wb = Nothing
End Sub
--Πίνακας Στατιστικών σε περίοδο χρόνου με βάση τον Κωδικό Συναλλαγής. Επιστρέφει: Κωδικό Συναλλαγής, Περιγραφή Συναλλαγής, Πλήθος Συναλλαγών και Αξία Συναλλαγών
SELECT b.transactionType_code AS 'ΚΩΔΙΚΟΣ ΣΥΝΑΛΛΑΓΗΣ', b.transactionType_name AS 'ΠΕΡΙΓΡΑΦΗ ΣΥΝΑΛΛΑΓΗΣ',
CASE
WHEN T.plithos IS NULL THEN 0
ELSE T.plithos
END AS 'ΠΛΗΘΟΣ',
CASE
WHEN T.axia IS NULL THEN 0
ELSE T.axia
END AS 'ΑΞΙΑ',
CASE
WHEN T.prom IS NULL THEN 0
ELSE T.prom
END AS 'ΠΡΟΜΗΘΕΙΑ',
CASE
WHEN T.custtype IS NULL THEN '-'
ELSE T.custtype
END AS 'ΤΥΠΟΣ ΠΕΛΑΤΗ',
CASE
WHEN T.chan IS NULL THEN '-'
ELSE T.chan
END AS 'ΚΑΝΑΛΙ'
FROM TransactionTypes b LEFT JOIN
(SELECT SUM(a.counted_transactions) AS plithos,
SUM(a.total_ammount) AS axia, SUM(total_charges) AS prom, c.customerType_name AS custtype, d.channel_name AS chan, a.transactionType_id
FROM Transactions a
LEFT JOIN CustomerTypes c ON a.customerType_id = c.customerType_id
LEFT JOIN Channels d on a.channel_id = d.channel_id
WHERE a.transaction_date BETWEEN '2019-07-01' AND '2019-07-31'
AND a.customerType_id = 2 AND a.channel_id = 2
GROUP BY c.customerType_name, d.channel_name, a.transactionType_id
) AS T
ON b.transactionType_id = T.transactionType_id
Από εκεί και πέρα
=RIGHT(R25430;LEN(R25430)-FIND("|FIRSTNAME=";R25430))
Από εκεί και πριν
=LEFT(BH25419;FIND("|";BH25419)-1)
Match σε σχέση με μια στήλη. (Εάν Βρεις το Α12 στο Φύλλο TEO από την στήλη Β έως την στήλη ΑΑ τότε φέρε μου την 26η στήλη. Βολεύει σε search forms.)
=VLOOKUP(A12;TEO!B12:AA30010;26;FALSE)
Αναζήτηση με FIND ή SEARCH
=IF(FIND("DT_OOB";M9);"SMS";"")
Πρόσθεση μόνο εάν ισχύει συνθήκη σε στήλη. (Εάν η στήλη F είναι “Retail” τότε βγάλε το SUM της D)
=SUMIF(F:F;"RETAIL";D:D)
Αφαίρεση των Enter από τα κελιά
=SUBSTITUTE(A1,CHAR(10),", ")
Εάν δεν είστε προγραμματιστής αγνοείστε αυτό το άρθρο. Εξαιρετικό εργαλείο για την δημιουργία σχήματος βάσης δεδομένων.
Τοποθετήστε το παρακάτω function στο functions.php του θέματός σας. Η ταξινόμηση των άρθρων θα γίνει σε όλα τα archives. Αρχική, κατηγορία, tag και search.
add_action( 'pre_get_posts', 'orderTcpUpdate' );
function orderTcpUpdate( $query )
{
$query->set('orderby','modified');
}
Εύκολα μετατρέπεται σε C#. Δημιουργήστε ένα module ώστε να μπορείτε να χρησιμοποιήσετε σε ανεξάρτητες φόρμες. Εγώ συνήθως την εφαρμόζω σε MenuStrip μενού.
Public Sub OpenInPanel(ByVal DaNewForm As Object)
Main.PanelContent.Controls.Clear()
Dim fh As Form = TryCast(DaNewForm, Form)
fh.TopLevel = False
fh.Dock = DockStyle.Fill
Main.PanelContent.Controls.Add(fh)
Main.PanelContent.Tag = fh
fh.Show()
End Sub
Όπου Main η κεντρική σας φόρμα και όπου PanelContent το Panel που θέλετε να φορτώσετε την φόρμα. Αφού δημιουργήσετε τo function (που είναι public προφανώς και όχι private) μπορείτε να την χρησιμοποιήσετε ως εξής:
OpenInPanel(Search)
Όπου Search η φόρμα που θέλετε να φορτώστε μέσα στο Panel.
function tcp_related_posts() {
global $post, $wpdb;
$backup = $post;
$tags = wp_get_post_tags($post->ID);
$tagIDs = array();
if ($tags) {
$tagcount = count($tags);
for ($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id;
}
$tagIDs = array_diff($tagIDs, array(364, 365, 556));
$showposts = get_theme_mod('related_postnum');
$showposts = !empty($showposts) ? $showposts : 5;
$args=array(
'tag__in' => $tagIDs,
'post__not_in' => array($post->ID),
'cat'=> '-5',
'showposts'=>$showposts,
'caller_get_posts'=>1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { $related_post_found = true; ?>
<h3>Σχετικά άρθρα</h3>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a class="title" href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('bloview');?><br><?php the_title(); ?></a>
<?php endwhile; ?>
<?php }
}
if(!$related_post_found){ ?>
<h3>'Δημοφιλή άρθρα</h3>
<ul>
<?php
$posts = get_posts('numberposts='.$showposts.'&offset=0&cat=-5&orderby=rand');
foreach($posts as $post) { ?>
<a class="title" href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('bloview');?><br><?php the_title(); ?></a>
<?php } ?>
</ul>
<?php
}
wp_reset_query();
}
Έτσι αντί να έχουμε σε dropdown τους συνδυασμούς των προϊόντων τις έχουμε σε λίστα με ξεχωριστό κουμπί “Προσθήκης στο καλάθι”;
function woocommerce_variable_add_to_cart() {
global $product, $post;
$variations = $product->get_available_variations();
?>
<table class="toptcptable">
<tbody>
<?php
foreach ($variations as $key => $value) {
?>
<tr>
<td>
<?php foreach ($value['attributes'] as $attrKey => $attr)
{
$tax = str_replace('attribute_', '', $attrKey);
$term_obj = get_term_by('slug', $attr, $tax);
?>
<td>
<?php echo $term_obj->name; ?>
</td>
<?php } ?>
<td>
<?php echo $value['price_html'];?>
</td>
<td>
<form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" method="post" enctype='multipart/form-data'>
<input type="hidden" name="variation_id" value="<?php echo $value['variation_id']?>" />
<input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
<input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $post->ID ); ?>" />
<?php
if(!empty($value['attributes'])){
foreach ($value['attributes'] as $attr_key => $attr_value) {
?>
<input type="hidden" name="<?php echo $attr_key?>" value="<?php echo $attr_value?>">
<?php
}
}
?>
<button type="submit" class="single_add_to_cart_button button alt"><i class="fas fa-cart-plus"></i></button>
</form>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
Απλά προσθέστε αυτό το φίλτρο στο αρχείο functions.php
add_filter( 'wpseo_xml_sitemap_img', '__return_false' );
Πολλές φορές για λόγους debug χρειάζεται να δούμε τον χρόνο εκτέλεσης ενός script ή μιας σελίδας. Το παρακάτω κομμάτι κώδικα μας δίνει κάποιες πληροφορίες ώστε να βγάλουμε συμπεράσματα.
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
Υπάρχουν 5 βασικές ομάδες στο WordPress. Ανάλογα με την ομάδα του WordPress στην οποία συμμετέχει ένας χρήστης έχει και τα αντίστοιχα δικαιώματα. Ορίζουμε ως ομάδα (δικαιωμάτων) τον “ρόλο” όπως αναφέρεται στο wordpress για να καταλαβαινόμαστε.
Ο πρώτος ρόλος του Super-Admin υπάρχει μόνο στα multisites. Ως administrator ορίζονται όλοι οι έξτρα διαχειριστές που δημιουργούνται μέσω του admin panel.
Πίνακας με βάση τα δικαιώματα του κάθε ρόλου.
Capability | Super Admin | Administrator | Editor | Author | Contributor | Subscriber |
---|---|---|---|---|---|---|
create_sites | Y | |||||
delete_sites | Y | |||||
manage_network | Y | |||||
manage_sites | Y | |||||
manage_network_users | Y | |||||
manage_network_plugins | Y | |||||
manage_network_themes | Y | |||||
manage_network_options | Y | |||||
upload_plugins | Y | |||||
upload_themes | Y | |||||
upgrade_network | Y | |||||
setup_network | Y | |||||
Capability | Super Admin | Administrator | Editor | Author | Contributor | Subscriber |
activate_plugins | Y | Y (single site or enabled by network setting) |
||||
create_users | Y | Y (single site) | ||||
delete_plugins | Y | Y (single site) | ||||
delete_themes | Y | Y (single site) | ||||
delete_users | Y | Y (single site) | ||||
edit_files | Y | Y (single site) | ||||
edit_plugins | Y | Y (single site) | ||||
edit_theme_options | Y | Y | ||||
edit_themes | Y | Y (single site) | ||||
edit_users | Y | Y (single site) | ||||
export | Y | Y | ||||
import | Y | Y | ||||
Capability | Super Admin | Administrator | Editor | Author | Contributor | Subscriber |
install_plugins | Y | Y (single site) | ||||
install_themes | Y | Y (single site) | ||||
list_users | Y | Y | ||||
manage_options | Y | Y | ||||
promote_users | Y | Y | ||||
remove_users | Y | Y | ||||
switch_themes | Y | Y | ||||
update_core | Y | Y (single site) | ||||
update_plugins | Y | Y (single site) | ||||
update_themes | Y | Y (single site) | ||||
edit_dashboard | Y | Y | ||||
customize | Y | Y | ||||
delete_site | Y | Y | ||||
Capability | Super Admin | Administrator | Editor | Author | Contributor | Subscriber |
moderate_comments | Y | Y | Y | |||
manage_categories | Y | Y | Y | |||
manage_links | Y | Y | Y | |||
edit_others_posts | Y | Y | Y | |||
edit_pages | Y | Y | Y | |||
edit_others_pages | Y | Y | Y | |||
edit_published_pages | Y | Y | Y | |||
publish_pages | Y | Y | Y | |||
delete_pages | Y | Y | Y | |||
delete_others_pages | Y | Y | Y | |||
delete_published_pages | Y | Y | Y | |||
delete_others_posts | Y | Y | Y | |||
delete_private_posts | Y | Y | Y | |||
edit_private_posts | Y | Y | Y | |||
read_private_posts | Y | Y | Y | |||
delete_private_pages | Y | Y | Y | |||
edit_private_pages | Y | Y | Y | |||
read_private_pages | Y | Y | Y | |||
unfiltered_html | Y | Y (single site) | Y (single site) | |||
Capability | Super Admin | Administrator | Editor | Author | Contributor | Subscriber |
edit_published_posts | Y | Y | Y | Y | ||
upload_files | Y | Y | Y | Y | ||
publish_posts | Y | Y | Y | Y | ||
delete_published_posts | Y | Y | Y | Y | ||
edit_posts | Y | Y | Y | Y | Y | |
delete_posts | Y | Y | Y | Y | Y | |
Capability | Super Admin | Administrator | Editor | Author | Contributor | Subscriber |
read | Y | Y | Y | Y | Y | Y |
Τώρα ας πούμε ότι θέλουμε να προσθέσουμε ή να αφαιρέσουμε δικαιώματα από κάθε ομάδα. Για να προσθέσουμε χρησιμοποιούμε το παρακάτω fucntion add_cap().
<?php
$editor = get_role('editor');
$editor->add_cap('manage_options');
?>
Εάν θέλουμε να αφαιρέσουμε χρησιμοποιούμε το remove_cap().
<?php
$editor = get_role('editor');
$editor->remove_cap('manage_options');
?>
Πολλές φορές απεγκαθιστούμε ένα πρόγραμμα αλλά αυτό παραμένει στο startup στα Windows 10. Για παράδειγμα το buildbox ναι μεν έχει shortcut απεγκατάστασης αλλά τα φιντάνια εκεί δεν το διαγράφουν αλλά στο αφήνουν μέσα στο σύστημα σου προφανώς για λόγους marketing. Ε όχι ρε φίλε δεν γουσταρίζω. Τότε λοιπόν τι κάνουμε;
Options -Indexes
ErrorDocument 403 https://%{HTTP_HOST}
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Πάμε στο authentication.tpl που βρίσκεται στο φάκελο του θέματος και προσθέτουμε ένα checkbox μέσα στην φόρμα.
<div class="checkbox">
<input type="checkbox" name="nautiko" value="1">
<label for="nautiko">ΑΝΗΚΩ ΣΤΟ ΠΟΛΕΜΙΚΟ ΝΑΥΤΙΚΟ:</label>
</div>
Έπειτα ανοίγουμε το Controllers/front/AuthController.php. Αρχικά παίρνουμε την μεταβλητή από το post κάτω από την δημιουργία του πελάτη.
// Preparing customer
$customer = new Customer();
$nautiko = $_POST['nautiko'];
Ψάχνουμε στο αρχείο πιο κάτω έχει τα default groups. Προσθέτουμε αυτό.
if ($nautiko == 1)
{
$customer->addGroups(array(4));
$customer->id_default_group = 4;
}
Ενοείται βάζουμε το lib
Imports MySql.Data.MySqlClient
Τώρα τοποθετούμε τα connection strings και όλους τους βασικούς μας ορισμούς
Dim myConnectionString As String
myConnectionString = "server=127.0.0.1;" & "uid=root;" & "pwd=OKWDIKOSMAS;" & "database=IVASIDEDOMENWNMAS"
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
Το παρακάτω αποτελεί μια απλή λύση για τον νέο GDPR νόμο. Δεν είναι απόλυτη η χρήση του σε όλες τις περιπτώσεις. Πρέπει να συμβουλευτείτε τον νομικό σας σύμβουλο σε κάθε περίπτωση. Το κομμάτι κώδικα μπαίνει στο head.
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#eaf7f7",
"text": "#5c7291"
},
"button": {
"background": "transparent",
"text": "#56cbdb",
"border": "#56cbdb"
}
},
"content": {
"message": "Η Ιστοσελίδα χρησιμοποιεί cookies. ",
"dismiss": "Ενημερώθηκα",
"link": "Μάθετε τι είναι τα cookies."
}
})});
</script>
Το πρώτο βλέπουμε τον χώρο στον δίσκο. Το δεύτερο ποιοι φάκελοι ή αρχεία πιάνουν τον χώρο. Το τρίτο τον χώρο σε κάθε δίσκο.
du -sh
du -sh /var/lib/mysql/*
df -h
/*
* Default WP Alignment Classes
*****************************************************************************/
.aligncenter,.alignleft,.alignright {
display: block;
padding: 0;
}
.aligncenter {
float: none;
margin: .5em auto 1em;
}
.alignright {
float: right;
margin: .5em 0 1em 1em;
}
.alignleft {
float: left;
margin: .5em 1em 1em 0;
}
.wp-caption {
padding: 5px 0;
border: 1px solid #555;
background: #444;
text-align: center;
}
.wp-caption img {
display: inline;
}
.wp-caption p.wp-caption-text {
margin: 5px 0 0;
padding: 0;
text-align: center;
font-size: 75%;
font-weight: 100;
font-style: italic;
color: #ddd;
}
Προσθέστε το παρακάτω κομμάτι κώδικα στο functions.php.
add_filter('wp_handle_upload_prefilter','tcp_eidopoisiphoto');
function tcp_eidopoisiphoto($file)
{
$img=getimagesize($file['tmp_name']);
$minimum = array('width' => '640', 'height' => '480');
$width= $img[0];
$height =$img[1];
if ($width < $minimum['width'] )
return array("error"=>"ΒΑΛΕ ΜΕΓΑΛΗ ΦΩΤΟΓΡΑΦΙΑ!!! ΤΟΥΛΑΧΙΣΤΟΝ {$minimum['width']} σε μήκος. Αυτη που ανέβασες είναι: $width px");
else
return $file;
}
Όταν οι smammers μας σπάνε τα νεύρα στο prestashop τότε χρησιμοποιούμε το recapcha της Google. Στις περισσότερες περιπτώσεις θα μας προστατέψει από ενοχλητικά μηνύματα.
1. Στο contact-form.tpl του template μας πάμε ακριβώς πριν το submit button. Κάτι σαν το κάτω κομμάτι κώδικα.
<div class="submit">
<button type="submit" name="submitMessage" id="submitMessage" class="button"><span>{l s='Send'}<i class="icon-chevron-right right"></i></span></button>
</div>
</form>
Προσθέτουμε τις δύο γραμμές (όπου key το key από το recaptcha)
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="key"></div>
2. Πηγαίνουμε στο controllers/front/ContactController.php ή στο αντίστοιχο override.
if (Tools::isSubmit('submitMessage')) {
$extension = array('.txt', '.rtf', '.doc', '.docx', '.pdf', '.zip', '.png', '.jpeg', '.gif', '.jpg');
$file_attachment = Tools::fileAttachment('fileUpload');
$message = Tools::getValue('message'); // Html entities is not usefull, iscleanHtml check there is no bad html tags.
$id_order = (int)$this->getOrder();
if (!($from = trim(Tools::getValue('from'))) || !Validate::isEmail($from)) {
$this->errors[] = Tools::displayError('Invalid email address.');
//ΠΡΟΣΘΕΤΟΥΜΕ ΑΥΤΟ ΤΟ ΚΟΜΜΑΤΙ ΑΠΟ ΕΔΩ
} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
$this->errors[] = Tools::displayError('Captcha error');
// ΜΕΧΡΙ ΕΔΩ
Το προσθέτουμε στο wp-config.php στον γονικό φάκελο.
define('RELOCATE',true);
define('WP_HOME','http://neodomain.com');
define('WP_SITEURL','http://neodomain.com');
O text editor που χρησιμοποιεί το WordPress τα τελευταία χρόνια, μένει λίγο πολύ ο ίδιος. Οι όποιες αλλαγές γίνονται, είναι συνήθως για την διόρθωση μικροσφαλμάτων. Ενώ λοιπόν αυτό δεν είναι απαραίτητα κακό, οι ιθύνοντες αποφάσισαν να κάνουν μια μεγάλη αλλαγή με στόχο να κάνουν πιο εύκολη την δημιουργία και επεξεργασία άρθρων. Αν και προσωπικά δεν βλέπω το πρόβλημα.
Γιατί το Gutenberg;
Επειδή η χρήση smartphones για την δημιουργία άρθρων αυξάνει, υπήρχε η ανάγκη για αλλαγή στο styling.Το gutenberg γενικά προσαρμόζεται καλύτερα σε μικρότερες οθόνες σε σχέση με τον τρέχοντα text editor. Μέχρι στιγμής η beta έκδοση του Gutenberg αριθμεί περισσότερες από 70.000 ενεργές εγκαταστάσεις. Ο ιδρυτής Matt Mullenweg δήλωσε πως θα ενσωματωθεί στο WordPress όταν ξεπεράσεις τις 100.000.
Πώς να εγκαταστήσετε Gutenberg
Στα plugins πατάτε Νέο Plugin και αναζητάτε το Gutenberg.
Κάθε αρχή και δύσκολη. Πάρτε μια γεύση.
Η μορφοποίηση του κειμένου γίνεται αφού έχετε επιλέξει το κομμάτι του κειμένου που θέλετε να κάνετε edit. Πλέον μπορείτε να βάλετε πίνακες αλλά και να φτιάξετε blocks με διαφορετικό style. Γενικώς υπάρχουν πολλά ωραία καινούργια πραγματάκια όπως font-size και background colors.
Το Search Console παρουσιάζει ένα ανασχεδιασμένο προϊόν, για να σας βοηθήσει να διαχειριστείτε την παρουσία σας στην Αναζήτηση Google. Το νέο Search Console δημιουργήθηκε ξανά από την αρχή, για να παρέχει τα εργαλεία και τις πληροφορίες που ζητούν οι κάτοχοι ιστοτόπων και οι SEO. Μπορείτε πλέον να επιβεβαιώσετε ποιες από τις σελίδες σας έχουν ευρετηριαστεί και να λαμβάνετε πληροφορίες σχετικά με τον τρόπο επιδιόρθωσης των σφαλμάτων ευρετηρίασης. Μπορείτε επίσης να παρακολουθήσετε την απόδοσή σας στην Αναζήτηση Google με 16 μήνες δεδομένων (για την ενεργοποίηση συγκρίσεων από έτος σε έτος).
Εισάγουμε την παρακάτω συνάρτηση στο functions.php. Έτσι θα προσθέσουμε τέσσερα πεδία URL για Facebook, Twitter, Google Plus και Ιδιότητα.
function tcp_extra_fields_author($profile_fields) {
$profile_fields['twitter'] = 'Twitter URL';
$profile_fields['facebook'] = 'Facebook URL';
$profile_fields['gplus'] = 'Google+ URL';
$profile_fields['idiot'] = 'Ιδιότητα';
return $profile_fields;
}
add_filter('user_contactmethods', 'tcp_extra_fields_author');
Για να καλέσουμε καθένα από αυτά τα πεδία στο θέμα μας χρησιμοποιούμε τα παρακάτω.
the_author_meta('facebook');
the_author_meta('twitter');
the_author_meta('gplus');
the_author_meta('idiot');
Χρησιμοποιούμε το παρακάτω function για την διαγραφή προσωρινών δεδομένων από την βάση μας του WordPress, τα οποία πολλές φορές δημιουργούν καθυστερήσεις και μικροπροβλήματα.
function clear_transients(){
global $wpdb;
$sql ="DELETE FROM {$wpdb->options} WHERE option_name like '\_transient\_namespace\_%' OR option_name like '\_transient\_timeout\_namespace\_%'";
$wpdb->query($sql);
}